This commit is contained in:
Travis CI User
2018-01-25 09:45:19 +00:00
commit 81208b2498
25123 changed files with 1422222 additions and 0 deletions

View File

@@ -0,0 +1,142 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/bitflags-0.9.1/src/example_generated.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>example_generated.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
</pre><pre class="rust ">
<span class="doccomment">//! This module shows an example of code generated by the macro. **IT MUST NOT BE USED OUTSIDE THIS</span>
<span class="doccomment">//! CRATE**.</span>
<span class="macro">bitflags</span><span class="macro">!</span> {
<span class="doccomment">/// This is the same `Flags` struct defined in the [crate level example](../index.html#example).</span>
<span class="doccomment">/// Note that this struct is just for documentation purposes only, it must not be used outside</span>
<span class="doccomment">/// this crate.</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Flags</span>: <span class="ident">u32</span> {
<span class="kw">const</span> <span class="ident">FLAG_A</span> <span class="op">=</span> <span class="number">0b00000001</span>;
<span class="kw">const</span> <span class="ident">FLAG_B</span> <span class="op">=</span> <span class="number">0b00000010</span>;
<span class="kw">const</span> <span class="ident">FLAG_C</span> <span class="op">=</span> <span class="number">0b00000100</span>;
<span class="kw">const</span> <span class="ident">FLAG_ABC</span> <span class="op">=</span> <span class="ident">FLAG_A</span>.<span class="ident">bits</span>
<span class="op">|</span> <span class="ident">FLAG_B</span>.<span class="ident">bits</span>
<span class="op">|</span> <span class="ident">FLAG_C</span>.<span class="ident">bits</span>;
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "bitflags";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

2090
src/bitflags/lib.rs.html Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,418 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-pixbuf-0.2.0/src/animation.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>animation.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2015, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">glib</span>::{<span class="ident">Error</span>, <span class="ident">TimeVal</span>};
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">object</span>::<span class="ident">IsA</span>;
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span> <span class="kw">as</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">Pixbuf</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">PixbufAnimationIter</span>(<span class="ident">Object</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GdkPixbufAnimationIter</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_iter_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">PixbufAnimationIter</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">advance</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">start_time</span>: <span class="kw-2">&amp;</span><span class="ident">TimeVal</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_iter_advance</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">start_time</span>)))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_pixbuf</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Pixbuf</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_iter_get_pixbuf</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_delay_time</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_iter_get_delay_time</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">on_currently_loading_frame</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_iter_on_currently_loading_frame</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
}
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">PixbufAnimation</span>(<span class="ident">Object</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GdkPixbufAnimation</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">PixbufAnimation</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_file</span>(<span class="ident">file</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">PixbufAnimation</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">gdk_pixbuf_animation_new_from_file_utf8</span>
<span class="kw">as</span> <span class="ident">gdk_pixbuf_animation_new_from_file</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">gdk_pixbuf_animation_new_from_file</span>;
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">gdk_pixbuf_animation_new_from_file</span>(<span class="ident">file</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_28&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_resource</span>(<span class="ident">resource_path</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">PixbufAnimation</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_new_from_resource</span>(<span class="ident">resource_path</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
}
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">PixbufAnimationExt</span> {
<span class="kw">fn</span> <span class="ident">get_width</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span>;
<span class="kw">fn</span> <span class="ident">get_height</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span>;
<span class="kw">fn</span> <span class="ident">get_iter</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">start_time</span>: <span class="kw-2">&amp;</span><span class="ident">TimeVal</span>) <span class="op">-&gt;</span> <span class="ident">PixbufAnimationIter</span>;
<span class="kw">fn</span> <span class="ident">is_static_image</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span>;
<span class="kw">fn</span> <span class="ident">get_static_image</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Pixbuf</span><span class="op">&gt;</span>;
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IsA</span><span class="op">&lt;</span><span class="ident">PixbufAnimation</span><span class="op">&gt;&gt;</span> <span class="ident">PixbufAnimationExt</span> <span class="kw">for</span> <span class="ident">T</span> {
<span class="kw">fn</span> <span class="ident">get_width</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_get_width</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) }
}
<span class="kw">fn</span> <span class="ident">get_height</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_get_height</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) }
}
<span class="kw">fn</span> <span class="ident">get_iter</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">start_time</span>: <span class="kw-2">&amp;</span><span class="ident">TimeVal</span>) <span class="op">-&gt;</span> <span class="ident">PixbufAnimationIter</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_get_iter</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">start_time</span>)))
}
}
<span class="kw">fn</span> <span class="ident">is_static_image</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_is_static_image</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">fn</span> <span class="ident">get_static_image</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Pixbuf</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_animation_get_static_image</span>(
<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
}
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">PixbufSimpleAnim</span>(<span class="ident">Object</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GdkPixbufSimpleAnim</span><span class="op">&gt;</span>): <span class="ident">PixbufAnimation</span>;
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_simple_anim_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">PixbufSimpleAnim</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">width</span>: <span class="ident">i32</span>, <span class="ident">height</span>: <span class="ident">i32</span>, <span class="ident">rate</span>: <span class="ident">f32</span>) <span class="op">-&gt;</span> <span class="ident">PixbufSimpleAnim</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_simple_anim_new</span>(<span class="ident">width</span>, <span class="ident">height</span>, <span class="ident">rate</span>)) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_frame</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">pixbuf</span>: <span class="kw-2">&amp;</span><span class="ident">Pixbuf</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_simple_anim_add_frame</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">pixbuf</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_loop</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">loop_</span>: <span class="ident">bool</span>) {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_simple_anim_set_loop</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">loop_</span>.<span class="ident">to_glib</span>()) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_loop</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_simple_anim_get_loop</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)) }
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "gdk_pixbuf";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,268 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-pixbuf-0.2.0/src/format.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>format.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
<span id="72">72</span>
<span id="73">73</span>
<span id="74">74</span>
<span id="75">75</span>
<span id="76">76</span>
<span id="77">77</span>
<span id="78">78</span>
<span id="79">79</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2015, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span> <span class="kw">as</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">libc</span>::<span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">PixbufFormat</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">ffi</span>::<span class="ident">GdkPixbufFormat</span>);
<span class="kw">impl</span> <span class="ident">PixbufFormat</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_name</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_format_get_name</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_description</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_format_get_description</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_mime_types</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">Vec</span>::<span class="ident">from_glib_full</span>(
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_format_get_mime_types</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
<span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_extensions</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">Vec</span>::<span class="ident">from_glib_full</span>(
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_format_get_extensions</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
<span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_writable</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_format_is_writable</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_scalable</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_format_is_scalable</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_disabled</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_format_is_disabled</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_disabled</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">disabled</span>: <span class="ident">bool</span>) {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_format_set_disabled</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">disabled</span>.<span class="ident">to_glib</span>()) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_license</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_format_get_license</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
}
<span class="comment">// It&#39;s owned by the library and we never free it</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">ToGlibPtr</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">ffi</span>::<span class="ident">GdkPixbufFormat</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">PixbufFormat</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> ();
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_none</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Stash</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">ffi</span>::<span class="ident">GdkPixbufFormat</span>, <span class="ident">PixbufFormat</span><span class="op">&gt;</span> {
<span class="ident">Stash</span>(<span class="self">self</span>.<span class="number">0</span>, ())
}
}
<span class="kw">impl</span> <span class="ident">FromGlibPtrNone</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">ffi</span>::<span class="ident">GdkPixbufFormat</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">PixbufFormat</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">ffi</span>::<span class="ident">GdkPixbufFormat</span>) <span class="op">-&gt;</span> <span class="ident">PixbufFormat</span> {
<span class="ident">PixbufFormat</span>(<span class="ident">ptr</span>)
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "gdk_pixbuf";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

172
src/gdk_pixbuf/lib.rs.html Normal file
View File

@@ -0,0 +1,172 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-pixbuf-0.2.0/src/lib.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>lib.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">gdk_pixbuf_sys</span> <span class="kw">as</span> <span class="ident">gdk_pixbuf_ffi</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">glib_sys</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">gobject_sys</span> <span class="kw">as</span> <span class="ident">gobject_ffi</span>;
<span class="attribute">#[<span class="ident">macro_use</span>]</span>
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">glib</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">libc</span>;
<span class="kw">mod</span> <span class="ident">animation</span>;
<span class="kw">mod</span> <span class="ident">format</span>;
<span class="kw">mod</span> <span class="ident">loader</span>;
<span class="kw">mod</span> <span class="ident">pixbuf</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">prelude</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">animation</span>::{
<span class="ident">PixbufAnimation</span>,
<span class="ident">PixbufAnimationIter</span>,
<span class="ident">PixbufSimpleAnim</span>,
<span class="ident">PixbufAnimationExt</span>,
};
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">format</span>::<span class="ident">PixbufFormat</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">loader</span>::<span class="ident">PixbufLoader</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">pixbuf</span>::<span class="ident">Pixbuf</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">GdkColorspace</span> <span class="kw">as</span> <span class="ident">Colorspace</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">GdkInterpType</span> <span class="kw">as</span> <span class="ident">InterpType</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">GdkPixbufAlphaMode</span> <span class="kw">as</span> <span class="ident">PixbufAlphaMode</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">GdkPixbufError</span> <span class="kw">as</span> <span class="ident">PixbufError</span>;
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "gdk_pixbuf";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,324 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-pixbuf-0.2.0/src/loader.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>loader.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2015, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">libc</span>::<span class="ident">size_t</span>;
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">Error</span>;
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span> <span class="kw">as</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">Pixbuf</span>;
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">animation</span>::<span class="ident">PixbufAnimation</span>;
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">format</span>::<span class="ident">PixbufFormat</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">PixbufLoader</span>(<span class="ident">Object</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GdkPixbufLoader</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_loader_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">PixbufLoader</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-&gt;</span> <span class="ident">PixbufLoader</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_loader_new</span>()) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_with_type</span>(<span class="ident">image_type</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">PixbufLoader</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_loader_new_with_type</span>(<span class="ident">image_type</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
}
<span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_with_mime_type</span>(<span class="ident">mime_type</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">PixbufLoader</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_loader_new_with_mime_type</span>(<span class="ident">mime_type</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
}
<span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_format</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">PixbufFormat</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_loader_get_format</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">loader_write</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">buf</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>]) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_loader_write</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">buf</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>,
<span class="ident">buf</span>.<span class="ident">len</span>() <span class="kw">as</span> <span class="ident">size_t</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(())
}
<span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="comment">/*pub fn loader_write_bytes(&amp;self, buffer: &amp;glib::Bytes, error: &amp;mut Error) -&gt; bool {
gdk_pixbuf_loader_write_bytes
}*/</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_size</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">width</span>: <span class="ident">i32</span>, <span class="ident">height</span>: <span class="ident">i32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_loader_set_size</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">width</span>, <span class="ident">height</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_pixbuf</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Pixbuf</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_loader_get_pixbuf</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_animation</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">PixbufAnimation</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_loader_get_animation</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">close</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_loader_close</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(())
}
<span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "gdk_pixbuf";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,642 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-pixbuf-0.2.0/src/pixbuf.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>pixbuf.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">slice</span>;
<span class="kw">use</span> <span class="ident">libc</span>::{<span class="ident">c_void</span>, <span class="ident">c_uchar</span>};
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_36&quot;</span>)]</span>
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">BoolError</span>;
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">Error</span>;
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span> <span class="kw">as</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> {
<span class="ident">Colorspace</span>,
<span class="ident">InterpType</span>,
<span class="ident">PixbufFormat</span>,
};
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Pixbuf</span>(<span class="ident">Object</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GdkPixbuf</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">Pixbuf</span> {
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">colorspace</span>: <span class="ident">Colorspace</span>, <span class="ident">has_alpha</span>: <span class="ident">bool</span>, <span class="ident">bits_per_sample</span>: <span class="ident">i32</span>, <span class="ident">width</span>: <span class="ident">i32</span>,
<span class="ident">height</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Pixbuf</span>, ()<span class="op">&gt;</span> {
<span class="prelude-ty">Option</span>::<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_new</span>(<span class="ident">colorspace</span>, <span class="ident">has_alpha</span>.<span class="ident">to_glib</span>(),
<span class="ident">bits_per_sample</span>, <span class="ident">width</span>, <span class="ident">height</span>)).<span class="ident">ok_or</span>(())
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_vec</span>(<span class="kw-2">mut</span> <span class="ident">vec</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span>, <span class="ident">colorspace</span>: <span class="ident">Colorspace</span>, <span class="ident">has_alpha</span>: <span class="ident">bool</span>,
<span class="ident">bits_per_sample</span>: <span class="ident">i32</span>, <span class="ident">width</span>: <span class="ident">i32</span>, <span class="ident">height</span>: <span class="ident">i32</span>, <span class="ident">row_stride</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="ident">Pixbuf</span> {
<span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span> <span class="ident">destroy_vec</span>(_: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_uchar</span>, <span class="ident">data</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>) {
<span class="kw">let</span> <span class="ident">_vec</span>: <span class="ident">Box</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;&gt;</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">data</span>); <span class="comment">// the vector will be destroyed now</span>
}
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">bits_per_sample</span> <span class="op">==</span> <span class="number">8</span>);
<span class="kw">let</span> <span class="ident">n_channels</span> <span class="op">=</span> <span class="kw">if</span> <span class="ident">has_alpha</span> { <span class="number">4</span> } <span class="kw">else</span> { <span class="number">3</span> };
<span class="kw">let</span> <span class="ident">last_row_len</span> <span class="op">=</span> <span class="ident">width</span> <span class="op">*</span> ((<span class="ident">n_channels</span> <span class="op">*</span> <span class="ident">bits_per_sample</span> <span class="op">+</span> <span class="number">7</span>) <span class="op">/</span> <span class="number">8</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">vec</span>.<span class="ident">len</span>() <span class="op">==</span> ((<span class="ident">height</span> <span class="op">-</span> <span class="number">1</span>) <span class="op">*</span> <span class="ident">row_stride</span> <span class="op">+</span> <span class="ident">last_row_len</span>) <span class="kw">as</span> <span class="ident">usize</span>);
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">vec</span>.<span class="ident">as_mut_ptr</span>();
<span class="kw">let</span> <span class="ident">vec</span>: <span class="ident">Box</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;&gt;</span> <span class="op">=</span> <span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">vec</span>);
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_new_from_data</span>(<span class="ident">ptr</span>, <span class="ident">colorspace</span>, <span class="ident">has_alpha</span>.<span class="ident">to_glib</span>(), <span class="ident">bits_per_sample</span>,
<span class="ident">width</span>, <span class="ident">height</span>, <span class="ident">row_stride</span>, <span class="prelude-val">Some</span>(<span class="ident">destroy_vec</span>), <span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">vec</span>)))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_file</span>(<span class="ident">filename</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Pixbuf</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">gdk_pixbuf_new_from_file_utf8</span> <span class="kw">as</span> <span class="ident">gdk_pixbuf_new_from_file</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">gdk_pixbuf_new_from_file</span>;
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">gdk_pixbuf_new_from_file</span>(<span class="ident">filename</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_file_at_size</span>(<span class="ident">filename</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">width</span>: <span class="ident">i32</span>, <span class="ident">height</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Pixbuf</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">gdk_pixbuf_new_from_file_at_size_utf8</span>
<span class="kw">as</span> <span class="ident">gdk_pixbuf_new_from_file_at_size</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">gdk_pixbuf_new_from_file_at_size</span>;
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">gdk_pixbuf_new_from_file_at_size</span>(<span class="ident">filename</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">width</span>, <span class="ident">height</span>,
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_file_at_scale</span>(<span class="ident">filename</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">width</span>: <span class="ident">i32</span>, <span class="ident">height</span>: <span class="ident">i32</span>, <span class="ident">preserve_aspect_ratio</span>: <span class="ident">bool</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Pixbuf</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">gdk_pixbuf_new_from_file_at_scale_utf8</span>
<span class="kw">as</span> <span class="ident">gdk_pixbuf_new_from_file_at_scale</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">gdk_pixbuf_ffi</span>::<span class="ident">gdk_pixbuf_new_from_file_at_scale</span>;
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">gdk_pixbuf_new_from_file_at_scale</span>(<span class="ident">filename</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">width</span>, <span class="ident">height</span>,
<span class="ident">preserve_aspect_ratio</span>.<span class="ident">to_glib</span>(), <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_xpm_data</span>(<span class="ident">data</span>: <span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span><span class="ident">str</span>]) <span class="op">-&gt;</span> <span class="ident">Pixbuf</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_new_from_xpm_data</span>(<span class="ident">data</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_file_info</span>(<span class="ident">filename</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">width</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">i32</span>, <span class="ident">height</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">i32</span>)
<span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">PixbufFormat</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_file_info</span>(<span class="ident">filename</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">width</span>, <span class="ident">height</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_resource</span>(<span class="ident">resource_path</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Pixbuf</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_new_from_resource</span>(<span class="ident">resource_path</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_resource_at_scale</span>(<span class="ident">resource_path</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">width</span>: <span class="ident">i32</span>, <span class="ident">height</span>: <span class="ident">i32</span>, <span class="ident">preserve_aspect_ratio</span>: <span class="ident">bool</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Pixbuf</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_new_from_resource_at_scale</span>(<span class="ident">resource_path</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">width</span>, <span class="ident">height</span>, <span class="ident">preserve_aspect_ratio</span>.<span class="ident">to_glib</span>(), <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_subpixbuf</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">src_x</span>: <span class="ident">i32</span>, <span class="ident">src_y</span>: <span class="ident">i32</span>, <span class="ident">width</span>: <span class="ident">i32</span>, <span class="ident">height</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="ident">Pixbuf</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_new_subpixbuf</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">src_x</span>, <span class="ident">src_y</span>, <span class="ident">width</span>, <span class="ident">height</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_colorspace</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Colorspace</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_colorspace</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_n_channels</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_n_channels</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_has_alpha</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_has_alpha</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_bits_per_sample</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_bits_per_sample</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) }
}
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">get_pixels</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="kw-2">mut</span> [<span class="ident">u8</span>] {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">len</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_pixels_with_length</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">len</span>);
<span class="ident">slice</span>::<span class="ident">from_raw_parts_mut</span>(<span class="ident">ptr</span>, <span class="ident">len</span> <span class="kw">as</span> <span class="ident">usize</span>)
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_width</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_width</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_height</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_height</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_rowstride</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_rowstride</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_byte_length</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">usize</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_byte_length</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) <span class="kw">as</span> <span class="ident">usize</span> }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_option</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_get_option</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">scale_simple</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">dest_width</span>: <span class="ident">i32</span>, <span class="ident">dest_height</span>: <span class="ident">i32</span>, <span class="ident">interp_type</span>: <span class="ident">InterpType</span>)
<span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Pixbuf</span>, ()<span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="prelude-ty">Option</span>::<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_scale_simple</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">dest_width</span>,
<span class="ident">dest_height</span>, <span class="ident">interp_type</span>)).<span class="ident">ok_or</span>(())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">scale</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">dest</span>: <span class="kw-2">&amp;</span><span class="ident">Pixbuf</span>, <span class="ident">dest_x</span>: <span class="ident">i32</span>, <span class="ident">dest_y</span>: <span class="ident">i32</span>, <span class="ident">dest_width</span>: <span class="ident">i32</span>, <span class="ident">dest_height</span>: <span class="ident">i32</span>,
<span class="ident">offset_x</span>: <span class="ident">f64</span>, <span class="ident">offset_y</span>: <span class="ident">f64</span>, <span class="ident">scale_x</span>: <span class="ident">f64</span>, <span class="ident">scale_y</span>: <span class="ident">f64</span>,
<span class="ident">interp_type</span>: <span class="ident">InterpType</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_scale</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">dest</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">dest_x</span>, <span class="ident">dest_y</span>,
<span class="ident">dest_width</span>, <span class="ident">dest_height</span>, <span class="ident">offset_x</span>, <span class="ident">offset_y</span>, <span class="ident">scale_x</span>, <span class="ident">scale_y</span>,
<span class="ident">interp_type</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">composite</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">dest</span>: <span class="kw-2">&amp;</span><span class="ident">Pixbuf</span>, <span class="ident">dest_x</span>: <span class="ident">i32</span>, <span class="ident">dest_y</span>: <span class="ident">i32</span>, <span class="ident">dest_width</span>: <span class="ident">i32</span>,
<span class="ident">dest_height</span>: <span class="ident">i32</span>, <span class="ident">offset_x</span>: <span class="ident">f64</span>, <span class="ident">offset_y</span>: <span class="ident">f64</span>, <span class="ident">scale_x</span>: <span class="ident">f64</span>, <span class="ident">scale_y</span>: <span class="ident">f64</span>,
<span class="ident">interp_type</span>: <span class="ident">InterpType</span>, <span class="ident">overall_alpha</span>: <span class="ident">i32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_composite</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">dest</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">dest_x</span>, <span class="ident">dest_y</span>,
<span class="ident">dest_width</span>, <span class="ident">dest_height</span>, <span class="ident">offset_x</span>, <span class="ident">offset_y</span>, <span class="ident">scale_x</span>,
<span class="ident">scale_y</span>, <span class="ident">interp_type</span>, <span class="ident">overall_alpha</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">flip</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">horizontal</span>: <span class="ident">bool</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Pixbuf</span>, ()<span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="prelude-ty">Option</span>::<span class="ident">from_glib_full</span>((<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_flip</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">horizontal</span>.<span class="ident">to_glib</span>()))).<span class="ident">ok_or</span>(())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">put_pixel</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">x</span>: <span class="ident">i32</span>, <span class="ident">y</span>: <span class="ident">i32</span>, <span class="ident">red</span>: <span class="ident">u8</span>, <span class="ident">green</span>: <span class="ident">u8</span>, <span class="ident">blue</span>: <span class="ident">u8</span>, <span class="ident">alpha</span>: <span class="ident">u8</span>) {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">n_channels</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">get_n_channels</span>();
<span class="kw">let</span> <span class="ident">rowstride</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">get_rowstride</span>();
<span class="kw">let</span> <span class="ident">pixels</span> <span class="op">=</span> <span class="self">self</span>.<span class="ident">get_pixels</span>();
<span class="kw">let</span> <span class="ident">pos</span> <span class="op">=</span> (<span class="ident">y</span> <span class="op">*</span> <span class="ident">rowstride</span> <span class="op">+</span> <span class="ident">x</span> <span class="op">*</span> <span class="ident">n_channels</span>) <span class="kw">as</span> <span class="ident">usize</span>;
<span class="ident">pixels</span>[<span class="ident">pos</span>] <span class="op">=</span> <span class="ident">red</span>;
<span class="ident">pixels</span>[<span class="ident">pos</span> <span class="op">+</span> <span class="number">1</span>] <span class="op">=</span> <span class="ident">green</span>;
<span class="ident">pixels</span>[<span class="ident">pos</span> <span class="op">+</span> <span class="number">2</span>] <span class="op">=</span> <span class="ident">blue</span>;
<span class="ident">pixels</span>[<span class="ident">pos</span> <span class="op">+</span> <span class="number">3</span>] <span class="op">=</span> <span class="ident">alpha</span>;
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">copy</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Pixbuf</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">copy</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_copy</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
<span class="ident">FromGlibPtrFull</span>::<span class="ident">from_glib_full</span>(<span class="ident">copy</span>)
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_36&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">copy_options</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">dest_pixbuf</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Pixbuf</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">BoolError</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">err</span>: <span class="ident">glib_ffi</span>::<span class="ident">gboolean</span> <span class="op">=</span>
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">gdk_pixbuf_copy_options</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">dest_pixbuf</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
};
<span class="ident">BoolError</span>::<span class="ident">from_glib</span>(<span class="ident">err</span>, <span class="string">&quot;Failed to copy pixbuf options&quot;</span>)
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "gdk_pixbuf";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,116 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-pixbuf-0.2.0/src/prelude.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>prelude.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1">1</span>
<span id="2">2</span>
<span id="3">3</span>
</pre><pre class="rust ">
<span class="doccomment">//! Traits inteded for blanket imports.</span>
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">PixbufAnimationExt</span>;
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "gdk_pixbuf";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,860 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/gdk-pixbuf-sys-0.4.0/src/lib.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>lib.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
<span id="340">340</span>
<span id="341">341</span>
<span id="342">342</span>
<span id="343">343</span>
<span id="344">344</span>
<span id="345">345</span>
<span id="346">346</span>
<span id="347">347</span>
<span id="348">348</span>
<span id="349">349</span>
<span id="350">350</span>
<span id="351">351</span>
<span id="352">352</span>
<span id="353">353</span>
<span id="354">354</span>
<span id="355">355</span>
<span id="356">356</span>
<span id="357">357</span>
<span id="358">358</span>
<span id="359">359</span>
<span id="360">360</span>
<span id="361">361</span>
<span id="362">362</span>
<span id="363">363</span>
<span id="364">364</span>
<span id="365">365</span>
<span id="366">366</span>
<span id="367">367</span>
<span id="368">368</span>
<span id="369">369</span>
<span id="370">370</span>
<span id="371">371</span>
<span id="372">372</span>
<span id="373">373</span>
<span id="374">374</span>
<span id="375">375</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (61edbf2) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="attribute">#![<span class="ident">allow</span>(<span class="ident">non_camel_case_types</span>, <span class="ident">non_upper_case_globals</span>)]</span>
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">libc</span>;
<span class="attribute">#[<span class="ident">macro_use</span>]</span> <span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">bitflags</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">glib_sys</span> <span class="kw">as</span> <span class="ident">glib</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">gobject_sys</span> <span class="kw">as</span> <span class="ident">gobject</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">gio_sys</span> <span class="kw">as</span> <span class="ident">gio</span>;
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_imports</span>)]</span>
<span class="kw">use</span> <span class="ident">libc</span>::{<span class="ident">c_int</span>, <span class="ident">c_char</span>, <span class="ident">c_uchar</span>, <span class="ident">c_float</span>, <span class="ident">c_uint</span>, <span class="ident">c_double</span>,
<span class="ident">c_short</span>, <span class="ident">c_ushort</span>, <span class="ident">c_long</span>, <span class="ident">c_ulong</span>,
<span class="ident">c_void</span>, <span class="ident">size_t</span>, <span class="ident">ssize_t</span>, <span class="ident">intptr_t</span>, <span class="ident">uintptr_t</span>, <span class="ident">time_t</span>, <span class="ident">FILE</span>};
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_imports</span>)]</span>
<span class="kw">use</span> <span class="ident">glib</span>::{<span class="ident">gboolean</span>, <span class="ident">gconstpointer</span>, <span class="ident">gpointer</span>, <span class="ident">GType</span>, <span class="ident">Volatile</span>};
<span class="comment">// Enums</span>
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">Colorspace</span> <span class="op">=</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_COLORSPACE_RGB</span>: <span class="ident">Colorspace</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">GdkColorspace</span> <span class="op">=</span> <span class="ident">Colorspace</span>;
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>)]</span>
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">GdkInterpType</span> {
<span class="ident">Nearest</span> <span class="op">=</span> <span class="number">0</span>,
<span class="ident">Tiles</span> <span class="op">=</span> <span class="number">1</span>,
<span class="ident">Bilinear</span> <span class="op">=</span> <span class="number">2</span>,
<span class="ident">Hyper</span> <span class="op">=</span> <span class="number">3</span>,
}
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_INTERP_NEAREST</span>: <span class="ident">GdkInterpType</span> <span class="op">=</span> <span class="ident">GdkInterpType</span>::<span class="ident">Nearest</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_INTERP_TILES</span>: <span class="ident">GdkInterpType</span> <span class="op">=</span> <span class="ident">GdkInterpType</span>::<span class="ident">Tiles</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_INTERP_BILINEAR</span>: <span class="ident">GdkInterpType</span> <span class="op">=</span> <span class="ident">GdkInterpType</span>::<span class="ident">Bilinear</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_INTERP_HYPER</span>: <span class="ident">GdkInterpType</span> <span class="op">=</span> <span class="ident">GdkInterpType</span>::<span class="ident">Hyper</span>;
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>)]</span>
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">GdkPixbufAlphaMode</span> {
<span class="ident">Bilevel</span> <span class="op">=</span> <span class="number">0</span>,
<span class="ident">Full</span> <span class="op">=</span> <span class="number">1</span>,
}
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ALPHA_BILEVEL</span>: <span class="ident">GdkPixbufAlphaMode</span> <span class="op">=</span> <span class="ident">GdkPixbufAlphaMode</span>::<span class="ident">Bilevel</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ALPHA_FULL</span>: <span class="ident">GdkPixbufAlphaMode</span> <span class="op">=</span> <span class="ident">GdkPixbufAlphaMode</span>::<span class="ident">Full</span>;
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>)]</span>
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">GdkPixbufError</span> {
<span class="ident">CorruptImage</span> <span class="op">=</span> <span class="number">0</span>,
<span class="ident">InsufficientMemory</span> <span class="op">=</span> <span class="number">1</span>,
<span class="ident">BadOption</span> <span class="op">=</span> <span class="number">2</span>,
<span class="ident">UnknownType</span> <span class="op">=</span> <span class="number">3</span>,
<span class="ident">UnsupportedOperation</span> <span class="op">=</span> <span class="number">4</span>,
<span class="ident">Failed</span> <span class="op">=</span> <span class="number">5</span>,
<span class="ident">IncompleteAnimation</span> <span class="op">=</span> <span class="number">6</span>,
}
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ERROR_CORRUPT_IMAGE</span>: <span class="ident">GdkPixbufError</span> <span class="op">=</span> <span class="ident">GdkPixbufError</span>::<span class="ident">CorruptImage</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ERROR_INSUFFICIENT_MEMORY</span>: <span class="ident">GdkPixbufError</span> <span class="op">=</span> <span class="ident">GdkPixbufError</span>::<span class="ident">InsufficientMemory</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ERROR_BAD_OPTION</span>: <span class="ident">GdkPixbufError</span> <span class="op">=</span> <span class="ident">GdkPixbufError</span>::<span class="ident">BadOption</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ERROR_UNKNOWN_TYPE</span>: <span class="ident">GdkPixbufError</span> <span class="op">=</span> <span class="ident">GdkPixbufError</span>::<span class="ident">UnknownType</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ERROR_UNSUPPORTED_OPERATION</span>: <span class="ident">GdkPixbufError</span> <span class="op">=</span> <span class="ident">GdkPixbufError</span>::<span class="ident">UnsupportedOperation</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ERROR_FAILED</span>: <span class="ident">GdkPixbufError</span> <span class="op">=</span> <span class="ident">GdkPixbufError</span>::<span class="ident">Failed</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ERROR_INCOMPLETE_ANIMATION</span>: <span class="ident">GdkPixbufError</span> <span class="op">=</span> <span class="ident">GdkPixbufError</span>::<span class="ident">IncompleteAnimation</span>;
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>)]</span>
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">GdkPixbufRotation</span> {
<span class="prelude-val">None</span> <span class="op">=</span> <span class="number">0</span>,
<span class="ident">Counterclockwise</span> <span class="op">=</span> <span class="number">90</span>,
<span class="ident">Upsidedown</span> <span class="op">=</span> <span class="number">180</span>,
<span class="ident">Clockwise</span> <span class="op">=</span> <span class="number">270</span>,
}
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ROTATE_NONE</span>: <span class="ident">GdkPixbufRotation</span> <span class="op">=</span> <span class="ident">GdkPixbufRotation</span>::<span class="prelude-val">None</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ROTATE_COUNTERCLOCKWISE</span>: <span class="ident">GdkPixbufRotation</span> <span class="op">=</span> <span class="ident">GdkPixbufRotation</span>::<span class="ident">Counterclockwise</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ROTATE_UPSIDEDOWN</span>: <span class="ident">GdkPixbufRotation</span> <span class="op">=</span> <span class="ident">GdkPixbufRotation</span>::<span class="ident">Upsidedown</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_ROTATE_CLOCKWISE</span>: <span class="ident">GdkPixbufRotation</span> <span class="op">=</span> <span class="ident">GdkPixbufRotation</span>::<span class="ident">Clockwise</span>;
<span class="comment">// Constants</span>
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_FEATURES_H</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="number">1</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_MAGIC_NUMBER</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="number">1197763408</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_MAJOR</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="number">2</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_MICRO</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_MINOR</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="number">36</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXBUF_VERSION</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span> <span class="op">=</span> <span class="string">b&quot;2.36.0\0&quot;</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">u8</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">GDK_PIXDATA_HEADER_LENGTH</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="number">24</span>;
<span class="comment">// Flags</span>
<span class="macro">bitflags</span><span class="macro">!</span> {
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixdataDumpType</span>: <span class="ident">c_uint</span> {
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_DUMP_PIXDATA_STREAM</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_DUMP_PIXDATA_STRUCT</span> <span class="op">=</span> <span class="number">1</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_DUMP_MACROS</span> <span class="op">=</span> <span class="number">2</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_DUMP_GTYPES</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_DUMP_CTYPES</span> <span class="op">=</span> <span class="number">256</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_DUMP_STATIC</span> <span class="op">=</span> <span class="number">512</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_DUMP_CONST</span> <span class="op">=</span> <span class="number">1024</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_DUMP_RLE_DECODER</span> <span class="op">=</span> <span class="number">65536</span>;
}
}
<span class="macro">bitflags</span><span class="macro">!</span> {
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixdataType</span>: <span class="ident">c_uint</span> {
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_COLOR_TYPE_RGB</span> <span class="op">=</span> <span class="number">1</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_COLOR_TYPE_RGBA</span> <span class="op">=</span> <span class="number">2</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_COLOR_TYPE_MASK</span> <span class="op">=</span> <span class="number">255</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_SAMPLE_WIDTH_8</span> <span class="op">=</span> <span class="number">65536</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_SAMPLE_WIDTH_MASK</span> <span class="op">=</span> <span class="number">983040</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_ENCODING_RAW</span> <span class="op">=</span> <span class="number">16777216</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_ENCODING_RLE</span> <span class="op">=</span> <span class="number">33554432</span>;
<span class="kw">const</span> <span class="ident">GDK_PIXDATA_ENCODING_MASK</span> <span class="op">=</span> <span class="number">251658240</span>;
}
}
<span class="comment">// Callbacks</span>
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">GdkPixbufDestroyNotify</span> <span class="op">=</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>, <span class="ident">gpointer</span>)<span class="op">&gt;</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">GdkPixbufSaveFunc</span> <span class="op">=</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>, <span class="ident">size_t</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>, <span class="ident">gpointer</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span><span class="op">&gt;</span>;
<span class="comment">// Records</span>
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixbufFormat</span>(<span class="ident">c_void</span>);
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixbufLoaderClass</span> {
<span class="kw">pub</span> <span class="ident">parent_class</span>: <span class="ident">gobject</span>::<span class="ident">GObjectClass</span>,
<span class="kw">pub</span> <span class="ident">size_prepared</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>, <span class="ident">c_int</span>, <span class="ident">c_int</span>)<span class="op">&gt;</span>,
<span class="kw">pub</span> <span class="ident">area_prepared</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>)<span class="op">&gt;</span>,
<span class="kw">pub</span> <span class="ident">area_updated</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>, <span class="ident">c_int</span>, <span class="ident">c_int</span>, <span class="ident">c_int</span>, <span class="ident">c_int</span>)<span class="op">&gt;</span>,
<span class="kw">pub</span> <span class="ident">closed</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>)<span class="op">&gt;</span>,
}
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixbufSimpleAnimClass</span>(<span class="ident">c_void</span>);
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixdata</span> {
<span class="kw">pub</span> <span class="ident">magic</span>: <span class="ident">u32</span>,
<span class="kw">pub</span> <span class="ident">length</span>: <span class="ident">i32</span>,
<span class="kw">pub</span> <span class="ident">pixdata_type</span>: <span class="ident">u32</span>,
<span class="kw">pub</span> <span class="ident">rowstride</span>: <span class="ident">u32</span>,
<span class="kw">pub</span> <span class="ident">width</span>: <span class="ident">u32</span>,
<span class="kw">pub</span> <span class="ident">height</span>: <span class="ident">u32</span>,
<span class="kw">pub</span> <span class="ident">pixel_data</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>,
}
<span class="comment">// Classes</span>
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixbuf</span>(<span class="ident">c_void</span>);
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixbufAnimation</span>(<span class="ident">c_void</span>);
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixbufAnimationIter</span>(<span class="ident">c_void</span>);
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixbufLoader</span> {
<span class="kw">pub</span> <span class="ident">parent_instance</span>: <span class="ident">gobject</span>::<span class="ident">GObject</span>,
<span class="kw">pub</span> <span class="ident">priv_</span>: <span class="ident">gpointer</span>,
}
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixbufSimpleAnim</span>(<span class="ident">c_void</span>);
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">GdkPixbufSimpleAnimIter</span>(<span class="ident">c_void</span>);
<span class="kw">extern</span> <span class="string">&quot;C&quot;</span> {
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkColorspace</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_colorspace_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkInterpType</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_interp_type_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixbufAlphaMode</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_alpha_mode_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixbufError</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_error_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_error_quark</span>() <span class="op">-&gt;</span> <span class="ident">glib</span>::<span class="ident">GQuark</span>;
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixbufRotation</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_rotation_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixbufFormat</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_copy</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbufFormat</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_free</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_get_description</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_get_extensions</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_get_license</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_get_mime_types</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_get_name</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_is_disabled</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_36&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_is_save_option_supported</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>, <span class="ident">option_key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_is_scalable</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_is_writable</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_format_set_disabled</span>(<span class="ident">format</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>, <span class="ident">disabled</span>: <span class="ident">gboolean</span>);
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixdata</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixdata_deserialize</span>(<span class="ident">pixdata</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixdata</span>, <span class="ident">stream_length</span>: <span class="ident">c_uint</span>, <span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixdata_from_pixbuf</span>(<span class="ident">pixdata</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixdata</span>, <span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">use_rle</span>: <span class="ident">gboolean</span>) <span class="op">-&gt;</span> <span class="ident">gpointer</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixdata_serialize</span>(<span class="ident">pixdata</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixdata</span>, <span class="ident">stream_length_p</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_uint</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixdata_to_csource</span>(<span class="ident">pixdata</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixdata</span>, <span class="ident">name</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">dump_type</span>: <span class="ident">GdkPixdataDumpType</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GString</span>;
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixbuf</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new</span>(<span class="ident">colorspace</span>: <span class="ident">GdkColorspace</span>, <span class="ident">has_alpha</span>: <span class="ident">gboolean</span>, <span class="ident">bits_per_sample</span>: <span class="ident">c_int</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_32&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_bytes</span>(<span class="ident">data</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GBytes</span>, <span class="ident">colorspace</span>: <span class="ident">GdkColorspace</span>, <span class="ident">has_alpha</span>: <span class="ident">gboolean</span>, <span class="ident">bits_per_sample</span>: <span class="ident">c_int</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">rowstride</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_data</span>(<span class="ident">data</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>, <span class="ident">colorspace</span>: <span class="ident">GdkColorspace</span>, <span class="ident">has_alpha</span>: <span class="ident">gboolean</span>, <span class="ident">bits_per_sample</span>: <span class="ident">c_int</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">rowstride</span>: <span class="ident">c_int</span>, <span class="ident">destroy_fn</span>: <span class="ident">GdkPixbufDestroyNotify</span>, <span class="ident">destroy_fn_data</span>: <span class="ident">gpointer</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_file_utf8</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_file</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_file_at_scale_utf8</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">preserve_aspect_ratio</span>: <span class="ident">gboolean</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_file_at_scale</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">preserve_aspect_ratio</span>: <span class="ident">gboolean</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_file_at_size_utf8</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_file_at_size</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_inline</span>(<span class="ident">data_length</span>: <span class="ident">c_int</span>, <span class="ident">data</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>, <span class="ident">copy_pixels</span>: <span class="ident">gboolean</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_resource</span>(<span class="ident">resource_path</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_resource_at_scale</span>(<span class="ident">resource_path</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">preserve_aspect_ratio</span>: <span class="ident">gboolean</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_stream</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GInputStream</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_stream_at_scale</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GInputStream</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">preserve_aspect_ratio</span>: <span class="ident">gboolean</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_stream_finish</span>(<span class="ident">async_result</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GAsyncResult</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_xpm_data</span>(<span class="ident">data</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_from_pixdata</span>(<span class="ident">pixdata</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixdata</span>, <span class="ident">copy_pixels</span>: <span class="ident">gboolean</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_file_info</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">width</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_32&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_file_info_async</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">callback</span>: <span class="ident">gio</span>::<span class="ident">GAsyncReadyCallback</span>, <span class="ident">user_data</span>: <span class="ident">gpointer</span>);
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_32&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_file_info_finish</span>(<span class="ident">async_result</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GAsyncResult</span>, <span class="ident">width</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_int</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_formats</span>() <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GSList</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_stream_async</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GInputStream</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">callback</span>: <span class="ident">gio</span>::<span class="ident">GAsyncReadyCallback</span>, <span class="ident">user_data</span>: <span class="ident">gpointer</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_from_stream_at_scale_async</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GInputStream</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">preserve_aspect_ratio</span>: <span class="ident">gboolean</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">callback</span>: <span class="ident">gio</span>::<span class="ident">GAsyncReadyCallback</span>, <span class="ident">user_data</span>: <span class="ident">gpointer</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save_to_stream_finish</span>(<span class="ident">async_result</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GAsyncResult</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_add_alpha</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">substitute_color</span>: <span class="ident">gboolean</span>, <span class="ident">r</span>: <span class="ident">c_uchar</span>, <span class="ident">g</span>: <span class="ident">c_uchar</span>, <span class="ident">b</span>: <span class="ident">c_uchar</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_apply_embedded_orientation</span>(<span class="ident">src</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_composite</span>(<span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest_x</span>: <span class="ident">c_int</span>, <span class="ident">dest_y</span>: <span class="ident">c_int</span>, <span class="ident">dest_width</span>: <span class="ident">c_int</span>, <span class="ident">dest_height</span>: <span class="ident">c_int</span>, <span class="ident">offset_x</span>: <span class="ident">c_double</span>, <span class="ident">offset_y</span>: <span class="ident">c_double</span>, <span class="ident">scale_x</span>: <span class="ident">c_double</span>, <span class="ident">scale_y</span>: <span class="ident">c_double</span>, <span class="ident">interp_type</span>: <span class="ident">GdkInterpType</span>, <span class="ident">overall_alpha</span>: <span class="ident">c_int</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_composite_color</span>(<span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest_x</span>: <span class="ident">c_int</span>, <span class="ident">dest_y</span>: <span class="ident">c_int</span>, <span class="ident">dest_width</span>: <span class="ident">c_int</span>, <span class="ident">dest_height</span>: <span class="ident">c_int</span>, <span class="ident">offset_x</span>: <span class="ident">c_double</span>, <span class="ident">offset_y</span>: <span class="ident">c_double</span>, <span class="ident">scale_x</span>: <span class="ident">c_double</span>, <span class="ident">scale_y</span>: <span class="ident">c_double</span>, <span class="ident">interp_type</span>: <span class="ident">GdkInterpType</span>, <span class="ident">overall_alpha</span>: <span class="ident">c_int</span>, <span class="ident">check_x</span>: <span class="ident">c_int</span>, <span class="ident">check_y</span>: <span class="ident">c_int</span>, <span class="ident">check_size</span>: <span class="ident">c_int</span>, <span class="ident">color1</span>: <span class="ident">u32</span>, <span class="ident">color2</span>: <span class="ident">u32</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_composite_color_simple</span>(<span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest_width</span>: <span class="ident">c_int</span>, <span class="ident">dest_height</span>: <span class="ident">c_int</span>, <span class="ident">interp_type</span>: <span class="ident">GdkInterpType</span>, <span class="ident">overall_alpha</span>: <span class="ident">c_int</span>, <span class="ident">check_size</span>: <span class="ident">c_int</span>, <span class="ident">color1</span>: <span class="ident">u32</span>, <span class="ident">color2</span>: <span class="ident">u32</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_copy</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_copy_area</span>(<span class="ident">src_pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">src_x</span>: <span class="ident">c_int</span>, <span class="ident">src_y</span>: <span class="ident">c_int</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">dest_pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest_x</span>: <span class="ident">c_int</span>, <span class="ident">dest_y</span>: <span class="ident">c_int</span>);
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_36&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_copy_options</span>(<span class="ident">src_pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest_pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_fill</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">pixel</span>: <span class="ident">u32</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_flip</span>(<span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">horizontal</span>: <span class="ident">gboolean</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_bits_per_sample</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_byte_length</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="ident">size_t</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_colorspace</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="ident">GdkColorspace</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_has_alpha</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_height</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_n_channels</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_option</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_32&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_options</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GHashTable</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_pixels</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_pixels_with_length</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">length</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_uint</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_rowstride</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_get_width</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_new_subpixbuf</span>(<span class="ident">src_pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">src_x</span>: <span class="ident">c_int</span>, <span class="ident">src_y</span>: <span class="ident">c_int</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_32&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_read_pixel_bytes</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GBytes</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_32&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_read_pixels</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">u8</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_ref</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_36&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_remove_option</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_rotate_simple</span>(<span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">angle</span>: <span class="ident">GdkPixbufRotation</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_saturate_and_pixelate</span>(<span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">saturation</span>: <span class="ident">c_float</span>, <span class="ident">pixelate</span>: <span class="ident">gboolean</span>);
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save_utf8</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>, ...) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>, ...) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save_to_buffer</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">buffer</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>, <span class="ident">buffer_size</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">size_t</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>, ...) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save_to_bufferv</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">buffer</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>, <span class="ident">buffer_size</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">size_t</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">option_keys</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">option_values</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save_to_callback</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">save_func</span>: <span class="ident">GdkPixbufSaveFunc</span>, <span class="ident">user_data</span>: <span class="ident">gpointer</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>, ...) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save_to_callbackv</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">save_func</span>: <span class="ident">GdkPixbufSaveFunc</span>, <span class="ident">user_data</span>: <span class="ident">gpointer</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">option_keys</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">option_values</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save_to_stream</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GOutputStream</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>, ...) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save_to_stream_async</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GOutputStream</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">callback</span>: <span class="ident">gio</span>::<span class="ident">GAsyncReadyCallback</span>, <span class="ident">user_data</span>: <span class="ident">gpointer</span>, ...);
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_36&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save_to_streamv</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GOutputStream</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">option_keys</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">option_values</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_36&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_save_to_streamv_async</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GOutputStream</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">option_keys</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">option_values</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">callback</span>: <span class="ident">gio</span>::<span class="ident">GAsyncReadyCallback</span>, <span class="ident">user_data</span>: <span class="ident">gpointer</span>);
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_savev_utf8</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">option_keys</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">option_values</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_savev</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">type_</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">option_keys</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">option_values</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_scale</span>(<span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest_x</span>: <span class="ident">c_int</span>, <span class="ident">dest_y</span>: <span class="ident">c_int</span>, <span class="ident">dest_width</span>: <span class="ident">c_int</span>, <span class="ident">dest_height</span>: <span class="ident">c_int</span>, <span class="ident">offset_x</span>: <span class="ident">c_double</span>, <span class="ident">offset_y</span>: <span class="ident">c_double</span>, <span class="ident">scale_x</span>: <span class="ident">c_double</span>, <span class="ident">scale_y</span>: <span class="ident">c_double</span>, <span class="ident">interp_type</span>: <span class="ident">GdkInterpType</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_scale_simple</span>(<span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">GdkPixbuf</span>, <span class="ident">dest_width</span>: <span class="ident">c_int</span>, <span class="ident">dest_height</span>: <span class="ident">c_int</span>, <span class="ident">interp_type</span>: <span class="ident">GdkInterpType</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_set_option</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>, <span class="ident">key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">value</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_unref</span>(<span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>);
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixbufAnimation</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_new_from_file_utf8</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_new_from_file</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_28&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_new_from_resource</span>(<span class="ident">resource_path</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_28&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_new_from_stream</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GInputStream</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_28&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_new_from_stream_finish</span>(<span class="ident">async_result</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GAsyncResult</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_28&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_new_from_stream_async</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GInputStream</span>, <span class="ident">cancellable</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gio</span>::<span class="ident">GCancellable</span>, <span class="ident">callback</span>: <span class="ident">gio</span>::<span class="ident">GAsyncReadyCallback</span>, <span class="ident">user_data</span>: <span class="ident">gpointer</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_get_height</span>(<span class="ident">animation</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_get_iter</span>(<span class="ident">animation</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>, <span class="ident">start_time</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">glib</span>::<span class="ident">GTimeVal</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimationIter</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_get_static_image</span>(<span class="ident">animation</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_get_width</span>(<span class="ident">animation</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_is_static_image</span>(<span class="ident">animation</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_ref</span>(<span class="ident">animation</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_unref</span>(<span class="ident">animation</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>);
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixbufAnimationIter</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_iter_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_iter_advance</span>(<span class="ident">iter</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimationIter</span>, <span class="ident">current_time</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">glib</span>::<span class="ident">GTimeVal</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_iter_get_delay_time</span>(<span class="ident">iter</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimationIter</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_iter_get_pixbuf</span>(<span class="ident">iter</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimationIter</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_animation_iter_on_currently_loading_frame</span>(<span class="ident">iter</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimationIter</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixbufLoader</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_new</span>() <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_new_with_mime_type</span>(<span class="ident">mime_type</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_new_with_type</span>(<span class="ident">image_type</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_close</span>(<span class="ident">loader</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_get_animation</span>(<span class="ident">loader</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufAnimation</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_get_format</span>(<span class="ident">loader</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufFormat</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_get_pixbuf</span>(<span class="ident">loader</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_set_size</span>(<span class="ident">loader</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>, <span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_write</span>(<span class="ident">loader</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>, <span class="ident">buf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>, <span class="ident">count</span>: <span class="ident">size_t</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_30&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_loader_write_bytes</span>(<span class="ident">loader</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufLoader</span>, <span class="ident">buffer</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GBytes</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixbufSimpleAnim</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_simple_anim_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_simple_anim_new</span>(<span class="ident">width</span>: <span class="ident">c_int</span>, <span class="ident">height</span>: <span class="ident">c_int</span>, <span class="ident">rate</span>: <span class="ident">c_float</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufSimpleAnim</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_simple_anim_add_frame</span>(<span class="ident">animation</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufSimpleAnim</span>, <span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbuf</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_simple_anim_get_loop</span>(<span class="ident">animation</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufSimpleAnim</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_simple_anim_set_loop</span>(<span class="ident">animation</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">GdkPixbufSimpleAnim</span>, <span class="ident">loop_</span>: <span class="ident">gboolean</span>);
<span class="comment">//=========================================================================</span>
<span class="comment">// GdkPixbufSimpleAnimIter</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">gdk_pixbuf_simple_anim_iter_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "gdk_pixbuf_sys";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

13576
src/gio_sys/lib.rs.html Normal file

File diff suppressed because it is too large Load Diff

130
src/glib/auto/alias.rs.html Normal file
View File

@@ -0,0 +1,130 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/alias.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>alias.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_imports</span>)]</span>
<span class="kw">use</span> <span class="ident">auto</span>::<span class="kw-2">*</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">DateDay</span> <span class="op">=</span> <span class="ident">u8</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">DateYear</span> <span class="op">=</span> <span class="ident">u16</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">Time</span> <span class="op">=</span> <span class="ident">i32</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">TimeSpan</span> <span class="op">=</span> <span class="ident">i64</span>;
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,204 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/checksum.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>checksum.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="kw">use</span> <span class="ident">ChecksumType</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Checksum</span>(<span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GChecksum</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">copy</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_checksum_copy</span>(<span class="ident">mut_override</span>(<span class="ident">ptr</span>)),
<span class="ident">free</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_checksum_free</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">g_checksum_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">Checksum</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">checksum_type</span>: <span class="ident">ChecksumType</span>) <span class="op">-&gt;</span> <span class="ident">Checksum</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_checksum_new</span>(<span class="ident">checksum_type</span>.<span class="ident">to_glib</span>()))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">reset</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_checksum_reset</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">update</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">data</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>]) {
<span class="kw">let</span> <span class="ident">length</span> <span class="op">=</span> <span class="ident">data</span>.<span class="ident">len</span>() <span class="kw">as</span> <span class="ident">isize</span>;
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_checksum_update</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">data</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">length</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">type_get_length</span>(<span class="ident">checksum_type</span>: <span class="ident">ChecksumType</span>) <span class="op">-&gt;</span> <span class="ident">isize</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_checksum_type_get_length</span>(<span class="ident">checksum_type</span>.<span class="ident">to_glib</span>())
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,728 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/date_time.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>date_time.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="kw">use</span> <span class="ident">TimeSpan</span>;
<span class="kw">use</span> <span class="ident">TimeZone</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cmp</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">DateTime</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GDateTime</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_date_time_ref</span>(<span class="ident">ptr</span>),
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_date_time_unref</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">g_date_time_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">DateTime</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">tz</span>: <span class="kw-2">&amp;</span><span class="ident">TimeZone</span>, <span class="ident">year</span>: <span class="ident">i32</span>, <span class="ident">month</span>: <span class="ident">i32</span>, <span class="ident">day</span>: <span class="ident">i32</span>, <span class="ident">hour</span>: <span class="ident">i32</span>, <span class="ident">minute</span>: <span class="ident">i32</span>, <span class="ident">seconds</span>: <span class="ident">f64</span>) <span class="op">-&gt;</span> <span class="ident">DateTime</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_new</span>(<span class="ident">tz</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">year</span>, <span class="ident">month</span>, <span class="ident">day</span>, <span class="ident">hour</span>, <span class="ident">minute</span>, <span class="ident">seconds</span>))
}
}
<span class="comment">//pub fn new_from_timeval_local(tv: /*Ignored*/&amp;TimeVal) -&gt; DateTime {</span>
<span class="comment">// unsafe { TODO: call ffi::g_date_time_new_from_timeval_local() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn new_from_timeval_utc(tv: /*Ignored*/&amp;TimeVal) -&gt; DateTime {</span>
<span class="comment">// unsafe { TODO: call ffi::g_date_time_new_from_timeval_utc() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_unix_local</span>(<span class="ident">t</span>: <span class="ident">i64</span>) <span class="op">-&gt;</span> <span class="ident">DateTime</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_new_from_unix_local</span>(<span class="ident">t</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_from_unix_utc</span>(<span class="ident">t</span>: <span class="ident">i64</span>) <span class="op">-&gt;</span> <span class="ident">DateTime</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_new_from_unix_utc</span>(<span class="ident">t</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_local</span>(<span class="ident">year</span>: <span class="ident">i32</span>, <span class="ident">month</span>: <span class="ident">i32</span>, <span class="ident">day</span>: <span class="ident">i32</span>, <span class="ident">hour</span>: <span class="ident">i32</span>, <span class="ident">minute</span>: <span class="ident">i32</span>, <span class="ident">seconds</span>: <span class="ident">f64</span>) <span class="op">-&gt;</span> <span class="ident">DateTime</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_new_local</span>(<span class="ident">year</span>, <span class="ident">month</span>, <span class="ident">day</span>, <span class="ident">hour</span>, <span class="ident">minute</span>, <span class="ident">seconds</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_now</span>(<span class="ident">tz</span>: <span class="kw-2">&amp;</span><span class="ident">TimeZone</span>) <span class="op">-&gt;</span> <span class="ident">DateTime</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_new_now</span>(<span class="ident">tz</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_now_local</span>() <span class="op">-&gt;</span> <span class="ident">DateTime</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_new_now_local</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_now_utc</span>() <span class="op">-&gt;</span> <span class="ident">DateTime</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_new_now_utc</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_utc</span>(<span class="ident">year</span>: <span class="ident">i32</span>, <span class="ident">month</span>: <span class="ident">i32</span>, <span class="ident">day</span>: <span class="ident">i32</span>, <span class="ident">hour</span>: <span class="ident">i32</span>, <span class="ident">minute</span>: <span class="ident">i32</span>, <span class="ident">seconds</span>: <span class="ident">f64</span>) <span class="op">-&gt;</span> <span class="ident">DateTime</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_new_utc</span>(<span class="ident">year</span>, <span class="ident">month</span>, <span class="ident">day</span>, <span class="ident">hour</span>, <span class="ident">minute</span>, <span class="ident">seconds</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">timespan</span>: <span class="ident">TimeSpan</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_add</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">timespan</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_days</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">days</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_add_days</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">days</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_full</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">years</span>: <span class="ident">i32</span>, <span class="ident">months</span>: <span class="ident">i32</span>, <span class="ident">days</span>: <span class="ident">i32</span>, <span class="ident">hours</span>: <span class="ident">i32</span>, <span class="ident">minutes</span>: <span class="ident">i32</span>, <span class="ident">seconds</span>: <span class="ident">f64</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_add_full</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">years</span>, <span class="ident">months</span>, <span class="ident">days</span>, <span class="ident">hours</span>, <span class="ident">minutes</span>, <span class="ident">seconds</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_hours</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">hours</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_add_hours</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">hours</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_minutes</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">minutes</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_add_minutes</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">minutes</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_months</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">months</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_add_months</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">months</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_seconds</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">seconds</span>: <span class="ident">f64</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_add_seconds</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">seconds</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_weeks</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">weeks</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_add_weeks</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">weeks</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_years</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">years</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_add_years</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">years</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">difference</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">begin</span>: <span class="kw-2">&amp;</span><span class="ident">DateTime</span>) <span class="op">-&gt;</span> <span class="ident">TimeSpan</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_difference</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">begin</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">format</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">format</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_format</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">format</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_day_of_month</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_day_of_month</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_day_of_week</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_day_of_week</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_day_of_year</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_day_of_year</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_hour</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_hour</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_microsecond</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_microsecond</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_minute</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_minute</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_month</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_month</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_second</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_second</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_seconds</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">f64</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_seconds</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_timezone_abbreviation</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_get_timezone_abbreviation</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_utc_offset</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">TimeSpan</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_utc_offset</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_week_numbering_year</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_week_numbering_year</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_week_of_year</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_week_of_year</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_year</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_year</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_ymd</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> (<span class="ident">i32</span>, <span class="ident">i32</span>, <span class="ident">i32</span>) {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">year</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">month</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">day</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="ident">ffi</span>::<span class="ident">g_date_time_get_ymd</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">year</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">month</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">day</span>);
(<span class="ident">year</span>, <span class="ident">month</span>, <span class="ident">day</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_daylight_savings</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_is_daylight_savings</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">to_local</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_to_local</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="comment">//pub fn to_timeval(&amp;self, tv: /*Ignored*/&amp;mut TimeVal) -&gt; bool {</span>
<span class="comment">// unsafe { TODO: call ffi::g_date_time_to_timeval() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">to_timezone</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">tz</span>: <span class="kw-2">&amp;</span><span class="ident">TimeZone</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_to_timezone</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">tz</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">to_unix</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i64</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_time_to_unix</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">to_utc</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">DateTime</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_to_utc</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="comment">//pub fn compare(dt1: /*Unimplemented*/Fundamental: Pointer, dt2: /*Unimplemented*/Fundamental: Pointer) -&gt; i32 {</span>
<span class="comment">// unsafe { TODO: call ffi::g_date_time_compare() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn equal(dt1: /*Unimplemented*/Fundamental: Pointer, dt2: /*Unimplemented*/Fundamental: Pointer) -&gt; bool {</span>
<span class="comment">// unsafe { TODO: call ffi::g_date_time_equal() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn hash(datetime: /*Unimplemented*/Fundamental: Pointer) -&gt; u32 {</span>
<span class="comment">// unsafe { TODO: call ffi::g_date_time_hash() }</span>
<span class="comment">//}</span>
}
<span class="kw">impl</span> <span class="ident">PartialOrd</span> <span class="kw">for</span> <span class="ident">DateTime</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">partial_cmp</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">cmp</span>::<span class="ident">Ordering</span><span class="op">&gt;</span> {
<span class="self">self</span>.<span class="ident">compare</span>(<span class="ident">other</span>).<span class="ident">partial_cmp</span>(<span class="kw-2">&amp;</span><span class="number">0</span>)
}
}
<span class="kw">impl</span> <span class="ident">Ord</span> <span class="kw">for</span> <span class="ident">DateTime</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">cmp</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">cmp</span>::<span class="ident">Ordering</span> {
<span class="self">self</span>.<span class="ident">compare</span>(<span class="ident">other</span>).<span class="ident">cmp</span>(<span class="kw-2">&amp;</span><span class="number">0</span>)
}
}
<span class="kw">impl</span> <span class="ident">PartialEq</span> <span class="kw">for</span> <span class="ident">DateTime</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="self">self</span>.<span class="ident">equal</span>(<span class="ident">other</span>)
}
}
<span class="kw">impl</span> <span class="ident">Eq</span> <span class="kw">for</span> <span class="ident">DateTime</span> {}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

642
src/glib/auto/enums.rs.html Normal file
View File

@@ -0,0 +1,642 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/enums.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>enums.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">error</span>::<span class="ident">ErrorDomain</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">std</span>;
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>, <span class="ident">Hash</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">ChecksumType</span> {
<span class="ident">Md5</span>,
<span class="ident">Sha1</span>,
<span class="ident">Sha256</span>,
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_36&quot;</span>)]</span>
<span class="ident">Sha512</span>,
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="ident">__Unknown</span>(<span class="ident">i32</span>),
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">ChecksumType</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">GChecksumType</span>;
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">ffi</span>::<span class="ident">GChecksumType</span> {
<span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
<span class="ident">ChecksumType</span>::<span class="ident">Md5</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_CHECKSUM_MD5</span>,
<span class="ident">ChecksumType</span>::<span class="ident">Sha1</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_CHECKSUM_SHA1</span>,
<span class="ident">ChecksumType</span>::<span class="ident">Sha256</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_CHECKSUM_SHA256</span>,
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_36&quot;</span>)]</span>
<span class="ident">ChecksumType</span>::<span class="ident">Sha512</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_CHECKSUM_SHA512</span>,
<span class="ident">ChecksumType</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>) <span class="op">=&gt;</span> <span class="kw">unsafe</span>{<span class="ident">std</span>::<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">value</span>)}
}
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GChecksumType</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">ChecksumType</span> {
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">value</span>: <span class="ident">ffi</span>::<span class="ident">GChecksumType</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="kw">match</span> <span class="ident">value</span> <span class="kw">as</span> <span class="ident">i32</span> {
<span class="number">0</span> <span class="op">=&gt;</span> <span class="ident">ChecksumType</span>::<span class="ident">Md5</span>,
<span class="number">1</span> <span class="op">=&gt;</span> <span class="ident">ChecksumType</span>::<span class="ident">Sha1</span>,
<span class="number">2</span> <span class="op">=&gt;</span> <span class="ident">ChecksumType</span>::<span class="ident">Sha256</span>,
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_36&quot;</span>)]</span>
<span class="number">3</span> <span class="op">=&gt;</span> <span class="ident">ChecksumType</span>::<span class="ident">Sha512</span>,
<span class="ident">value</span> <span class="op">=&gt;</span> <span class="ident">ChecksumType</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>),
}
}
}
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>, <span class="ident">Hash</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">DateMonth</span> {
<span class="ident">BadMonth</span>,
<span class="ident">January</span>,
<span class="ident">February</span>,
<span class="ident">March</span>,
<span class="ident">April</span>,
<span class="ident">May</span>,
<span class="ident">June</span>,
<span class="ident">July</span>,
<span class="ident">August</span>,
<span class="ident">September</span>,
<span class="ident">October</span>,
<span class="ident">November</span>,
<span class="ident">December</span>,
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="ident">__Unknown</span>(<span class="ident">i32</span>),
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">DateMonth</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">GDateMonth</span>;
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">ffi</span>::<span class="ident">GDateMonth</span> {
<span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
<span class="ident">DateMonth</span>::<span class="ident">BadMonth</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_BAD_MONTH</span>,
<span class="ident">DateMonth</span>::<span class="ident">January</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_JANUARY</span>,
<span class="ident">DateMonth</span>::<span class="ident">February</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_FEBRUARY</span>,
<span class="ident">DateMonth</span>::<span class="ident">March</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_MARCH</span>,
<span class="ident">DateMonth</span>::<span class="ident">April</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_APRIL</span>,
<span class="ident">DateMonth</span>::<span class="ident">May</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_MAY</span>,
<span class="ident">DateMonth</span>::<span class="ident">June</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_JUNE</span>,
<span class="ident">DateMonth</span>::<span class="ident">July</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_JULY</span>,
<span class="ident">DateMonth</span>::<span class="ident">August</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_AUGUST</span>,
<span class="ident">DateMonth</span>::<span class="ident">September</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_SEPTEMBER</span>,
<span class="ident">DateMonth</span>::<span class="ident">October</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_OCTOBER</span>,
<span class="ident">DateMonth</span>::<span class="ident">November</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_NOVEMBER</span>,
<span class="ident">DateMonth</span>::<span class="ident">December</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_DECEMBER</span>,
<span class="ident">DateMonth</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>) <span class="op">=&gt;</span> <span class="kw">unsafe</span>{<span class="ident">std</span>::<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">value</span>)}
}
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GDateMonth</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">DateMonth</span> {
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">value</span>: <span class="ident">ffi</span>::<span class="ident">GDateMonth</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="kw">match</span> <span class="ident">value</span> <span class="kw">as</span> <span class="ident">i32</span> {
<span class="number">0</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">BadMonth</span>,
<span class="number">1</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">January</span>,
<span class="number">2</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">February</span>,
<span class="number">3</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">March</span>,
<span class="number">4</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">April</span>,
<span class="number">5</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">May</span>,
<span class="number">6</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">June</span>,
<span class="number">7</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">July</span>,
<span class="number">8</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">August</span>,
<span class="number">9</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">September</span>,
<span class="number">10</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">October</span>,
<span class="number">11</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">November</span>,
<span class="number">12</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">December</span>,
<span class="ident">value</span> <span class="op">=&gt;</span> <span class="ident">DateMonth</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>),
}
}
}
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>, <span class="ident">Hash</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">DateWeekday</span> {
<span class="ident">BadWeekday</span>,
<span class="ident">Monday</span>,
<span class="ident">Tuesday</span>,
<span class="ident">Wednesday</span>,
<span class="ident">Thursday</span>,
<span class="ident">Friday</span>,
<span class="ident">Saturday</span>,
<span class="ident">Sunday</span>,
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="ident">__Unknown</span>(<span class="ident">i32</span>),
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">DateWeekday</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">GDateWeekday</span>;
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">ffi</span>::<span class="ident">GDateWeekday</span> {
<span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
<span class="ident">DateWeekday</span>::<span class="ident">BadWeekday</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_BAD_WEEKDAY</span>,
<span class="ident">DateWeekday</span>::<span class="ident">Monday</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_MONDAY</span>,
<span class="ident">DateWeekday</span>::<span class="ident">Tuesday</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_TUESDAY</span>,
<span class="ident">DateWeekday</span>::<span class="ident">Wednesday</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_WEDNESDAY</span>,
<span class="ident">DateWeekday</span>::<span class="ident">Thursday</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_THURSDAY</span>,
<span class="ident">DateWeekday</span>::<span class="ident">Friday</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_FRIDAY</span>,
<span class="ident">DateWeekday</span>::<span class="ident">Saturday</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_SATURDAY</span>,
<span class="ident">DateWeekday</span>::<span class="ident">Sunday</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_DATE_SUNDAY</span>,
<span class="ident">DateWeekday</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>) <span class="op">=&gt;</span> <span class="kw">unsafe</span>{<span class="ident">std</span>::<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">value</span>)}
}
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GDateWeekday</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">DateWeekday</span> {
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">value</span>: <span class="ident">ffi</span>::<span class="ident">GDateWeekday</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="kw">match</span> <span class="ident">value</span> <span class="kw">as</span> <span class="ident">i32</span> {
<span class="number">0</span> <span class="op">=&gt;</span> <span class="ident">DateWeekday</span>::<span class="ident">BadWeekday</span>,
<span class="number">1</span> <span class="op">=&gt;</span> <span class="ident">DateWeekday</span>::<span class="ident">Monday</span>,
<span class="number">2</span> <span class="op">=&gt;</span> <span class="ident">DateWeekday</span>::<span class="ident">Tuesday</span>,
<span class="number">3</span> <span class="op">=&gt;</span> <span class="ident">DateWeekday</span>::<span class="ident">Wednesday</span>,
<span class="number">4</span> <span class="op">=&gt;</span> <span class="ident">DateWeekday</span>::<span class="ident">Thursday</span>,
<span class="number">5</span> <span class="op">=&gt;</span> <span class="ident">DateWeekday</span>::<span class="ident">Friday</span>,
<span class="number">6</span> <span class="op">=&gt;</span> <span class="ident">DateWeekday</span>::<span class="ident">Saturday</span>,
<span class="number">7</span> <span class="op">=&gt;</span> <span class="ident">DateWeekday</span>::<span class="ident">Sunday</span>,
<span class="ident">value</span> <span class="op">=&gt;</span> <span class="ident">DateWeekday</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>),
}
}
}
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>, <span class="ident">Hash</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">KeyFileError</span> {
<span class="ident">UnknownEncoding</span>,
<span class="ident">Parse</span>,
<span class="ident">NotFound</span>,
<span class="ident">KeyNotFound</span>,
<span class="ident">GroupNotFound</span>,
<span class="ident">InvalidValue</span>,
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="ident">__Unknown</span>(<span class="ident">i32</span>),
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">KeyFileError</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">GKeyFileError</span>;
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">ffi</span>::<span class="ident">GKeyFileError</span> {
<span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
<span class="ident">KeyFileError</span>::<span class="ident">UnknownEncoding</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_ERROR_UNKNOWN_ENCODING</span>,
<span class="ident">KeyFileError</span>::<span class="ident">Parse</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_ERROR_PARSE</span>,
<span class="ident">KeyFileError</span>::<span class="ident">NotFound</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_ERROR_NOT_FOUND</span>,
<span class="ident">KeyFileError</span>::<span class="ident">KeyNotFound</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_ERROR_KEY_NOT_FOUND</span>,
<span class="ident">KeyFileError</span>::<span class="ident">GroupNotFound</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_ERROR_GROUP_NOT_FOUND</span>,
<span class="ident">KeyFileError</span>::<span class="ident">InvalidValue</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_ERROR_INVALID_VALUE</span>,
<span class="ident">KeyFileError</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>) <span class="op">=&gt;</span> <span class="kw">unsafe</span>{<span class="ident">std</span>::<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">value</span>)}
}
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GKeyFileError</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">KeyFileError</span> {
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">value</span>: <span class="ident">ffi</span>::<span class="ident">GKeyFileError</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="kw">match</span> <span class="ident">value</span> <span class="kw">as</span> <span class="ident">i32</span> {
<span class="number">0</span> <span class="op">=&gt;</span> <span class="ident">KeyFileError</span>::<span class="ident">UnknownEncoding</span>,
<span class="number">1</span> <span class="op">=&gt;</span> <span class="ident">KeyFileError</span>::<span class="ident">Parse</span>,
<span class="number">2</span> <span class="op">=&gt;</span> <span class="ident">KeyFileError</span>::<span class="ident">NotFound</span>,
<span class="number">3</span> <span class="op">=&gt;</span> <span class="ident">KeyFileError</span>::<span class="ident">KeyNotFound</span>,
<span class="number">4</span> <span class="op">=&gt;</span> <span class="ident">KeyFileError</span>::<span class="ident">GroupNotFound</span>,
<span class="number">5</span> <span class="op">=&gt;</span> <span class="ident">KeyFileError</span>::<span class="ident">InvalidValue</span>,
<span class="ident">value</span> <span class="op">=&gt;</span> <span class="ident">KeyFileError</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>),
}
}
}
<span class="kw">impl</span> <span class="ident">ErrorDomain</span> <span class="kw">for</span> <span class="ident">KeyFileError</span> {
<span class="kw">fn</span> <span class="ident">domain</span>() <span class="op">-&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">GQuark</span> {
<span class="kw">unsafe</span> { <span class="ident">ffi</span>::<span class="ident">g_key_file_error_quark</span>() }
}
<span class="kw">fn</span> <span class="ident">code</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="self">self</span>.<span class="ident">to_glib</span>() <span class="kw">as</span> <span class="ident">i32</span>
}
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">code</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">match</span> <span class="ident">code</span> {
<span class="number">0</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">KeyFileError</span>::<span class="ident">UnknownEncoding</span>),
<span class="number">1</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">KeyFileError</span>::<span class="ident">Parse</span>),
<span class="number">2</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">KeyFileError</span>::<span class="ident">NotFound</span>),
<span class="number">3</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">KeyFileError</span>::<span class="ident">KeyNotFound</span>),
<span class="number">4</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">KeyFileError</span>::<span class="ident">GroupNotFound</span>),
<span class="number">5</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">KeyFileError</span>::<span class="ident">InvalidValue</span>),
<span class="ident">value</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">KeyFileError</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>)),
}
}
}
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>, <span class="ident">Hash</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">TimeType</span> {
<span class="ident">Standard</span>,
<span class="ident">Daylight</span>,
<span class="ident">Universal</span>,
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="ident">__Unknown</span>(<span class="ident">i32</span>),
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">TimeType</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">GTimeType</span>;
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">ffi</span>::<span class="ident">GTimeType</span> {
<span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
<span class="ident">TimeType</span>::<span class="ident">Standard</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_TIME_TYPE_STANDARD</span>,
<span class="ident">TimeType</span>::<span class="ident">Daylight</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_TIME_TYPE_DAYLIGHT</span>,
<span class="ident">TimeType</span>::<span class="ident">Universal</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">G_TIME_TYPE_UNIVERSAL</span>,
<span class="ident">TimeType</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>) <span class="op">=&gt;</span> <span class="kw">unsafe</span>{<span class="ident">std</span>::<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">value</span>)}
}
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GTimeType</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">TimeType</span> {
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">value</span>: <span class="ident">ffi</span>::<span class="ident">GTimeType</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="kw">match</span> <span class="ident">value</span> <span class="kw">as</span> <span class="ident">i32</span> {
<span class="number">0</span> <span class="op">=&gt;</span> <span class="ident">TimeType</span>::<span class="ident">Standard</span>,
<span class="number">1</span> <span class="op">=&gt;</span> <span class="ident">TimeType</span>::<span class="ident">Daylight</span>,
<span class="number">2</span> <span class="op">=&gt;</span> <span class="ident">TimeType</span>::<span class="ident">Universal</span>,
<span class="ident">value</span> <span class="op">=&gt;</span> <span class="ident">TimeType</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>),
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

218
src/glib/auto/flags.rs.html Normal file
View File

@@ -0,0 +1,218 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/flags.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>flags.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="macro">bitflags</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">FormatSizeFlags</span>: <span class="ident">u32</span> {
<span class="kw">const</span> <span class="ident">FORMAT_SIZE_DEFAULT</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">const</span> <span class="ident">FORMAT_SIZE_LONG_FORMAT</span> <span class="op">=</span> <span class="number">1</span>;
<span class="kw">const</span> <span class="ident">FORMAT_SIZE_IEC_UNITS</span> <span class="op">=</span> <span class="number">2</span>;
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">FormatSizeFlags</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">GFormatSizeFlags</span>;
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">ffi</span>::<span class="ident">GFormatSizeFlags</span> {
<span class="ident">ffi</span>::<span class="ident">GFormatSizeFlags</span>::<span class="ident">from_bits_truncate</span>(<span class="self">self</span>.<span class="ident">bits</span>())
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GFormatSizeFlags</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">FormatSizeFlags</span> {
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">value</span>: <span class="ident">ffi</span>::<span class="ident">GFormatSizeFlags</span>) <span class="op">-&gt;</span> <span class="ident">FormatSizeFlags</span> {
<span class="ident">FormatSizeFlags</span>::<span class="ident">from_bits_truncate</span>(<span class="ident">value</span>.<span class="ident">bits</span>())
}
}
<span class="macro">bitflags</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">KeyFileFlags</span>: <span class="ident">u32</span> {
<span class="kw">const</span> <span class="ident">KEY_FILE_NONE</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">const</span> <span class="ident">KEY_FILE_KEEP_COMMENTS</span> <span class="op">=</span> <span class="number">1</span>;
<span class="kw">const</span> <span class="ident">KEY_FILE_KEEP_TRANSLATIONS</span> <span class="op">=</span> <span class="number">2</span>;
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">KeyFileFlags</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">GKeyFileFlags</span>;
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">ffi</span>::<span class="ident">GKeyFileFlags</span> {
<span class="ident">ffi</span>::<span class="ident">GKeyFileFlags</span>::<span class="ident">from_bits_truncate</span>(<span class="self">self</span>.<span class="ident">bits</span>())
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GKeyFileFlags</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">KeyFileFlags</span> {
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">value</span>: <span class="ident">ffi</span>::<span class="ident">GKeyFileFlags</span>) <span class="op">-&gt;</span> <span class="ident">KeyFileFlags</span> {
<span class="ident">KeyFileFlags</span>::<span class="ident">from_bits_truncate</span>(<span class="ident">value</span>.<span class="ident">bits</span>())
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,740 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/key_file.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>key_file.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_50&quot;</span>)]</span>
<span class="kw">use</span> <span class="ident">Bytes</span>;
<span class="kw">use</span> <span class="ident">Error</span>;
<span class="kw">use</span> <span class="ident">KeyFileFlags</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">KeyFile</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GKeyFile</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_ref</span>(<span class="ident">ptr</span>),
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_unref</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">KeyFile</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-&gt;</span> <span class="ident">KeyFile</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_key_file_new</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_boolean</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_boolean</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(()) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="comment">//pub fn get_boolean_list(&amp;self, group_name: &amp;str, key: &amp;str) -&gt; Result&lt;/*Unimplemented*/CArray TypeId { ns_id: 0, id: 1 }, Error&gt; {</span>
<span class="comment">// unsafe { TODO: call ffi::g_key_file_get_boolean_list() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_comment</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="ident">P</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">group_name</span> <span class="op">=</span> <span class="ident">group_name</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">group_name</span> <span class="op">=</span> <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_comment</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ret</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_double</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">f64</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_double</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">ret</span>) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_double_list</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">f64</span><span class="op">&gt;</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">length</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_double_list</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">length</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">FromGlibContainer</span>::<span class="ident">from_glib_container_num</span>(<span class="ident">ret</span>, <span class="ident">length</span> <span class="kw">as</span> <span class="ident">usize</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_groups</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> (<span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>, <span class="ident">usize</span>) {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">length</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">FromGlibPtrContainer</span>::<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_key_file_get_groups</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">length</span>));
(<span class="ident">ret</span>, <span class="ident">length</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_int64</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">i64</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_int64</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">ret</span>) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_integer</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">i32</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_integer</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">ret</span>) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_integer_list</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">i32</span><span class="op">&gt;</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">length</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_integer_list</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">length</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">FromGlibContainer</span>::<span class="ident">from_glib_container_num</span>(<span class="ident">ret</span>, <span class="ident">length</span> <span class="kw">as</span> <span class="ident">usize</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_keys</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(<span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>, <span class="ident">usize</span>), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">length</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_keys</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">length</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>((<span class="ident">FromGlibPtrContainer</span>::<span class="ident">from_glib_full</span>(<span class="ident">ret</span>), <span class="ident">length</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_locale_string</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">locale</span>: <span class="ident">P</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">locale</span> <span class="op">=</span> <span class="ident">locale</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">locale</span> <span class="op">=</span> <span class="ident">locale</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_locale_string</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">locale</span>.<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ret</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_locale_string_list</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">locale</span>: <span class="ident">P</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">locale</span> <span class="op">=</span> <span class="ident">locale</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">locale</span> <span class="op">=</span> <span class="ident">locale</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">length</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_locale_string_list</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">locale</span>.<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">length</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">FromGlibContainer</span>::<span class="ident">from_glib_full_num</span>(<span class="ident">ret</span>, <span class="ident">length</span> <span class="kw">as</span> <span class="ident">usize</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_start_group</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_key_file_get_start_group</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_string</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_string</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ret</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_string_list</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">length</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_string_list</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">length</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">FromGlibContainer</span>::<span class="ident">from_glib_full_num</span>(<span class="ident">ret</span>, <span class="ident">length</span> <span class="kw">as</span> <span class="ident">usize</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_uint64</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">u64</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_uint64</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">ret</span>) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_value</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_get_value</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ret</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">has_group</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_key_file_has_group</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">has_key</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_has_key</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(()) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_50&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">load_from_bytes</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">bytes</span>: <span class="kw-2">&amp;</span><span class="ident">Bytes</span>, <span class="ident">flags</span>: <span class="ident">KeyFileFlags</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_load_from_bytes</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">bytes</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">flags</span>.<span class="ident">to_glib</span>(), <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(()) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">load_from_file</span><span class="op">&lt;</span><span class="ident">P</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">Path</span><span class="op">&gt;&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">file</span>: <span class="ident">P</span>, <span class="ident">flags</span>: <span class="ident">KeyFileFlags</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_load_from_file</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">file</span>.<span class="ident">as_ref</span>().<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">flags</span>.<span class="ident">to_glib</span>(), <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(()) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">remove_comment</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span>, <span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>, <span class="ident">Q</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;b</span> <span class="ident">str</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="ident">P</span>, <span class="ident">key</span>: <span class="ident">Q</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">group_name</span> <span class="op">=</span> <span class="ident">group_name</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">group_name</span> <span class="op">=</span> <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>();
<span class="kw">let</span> <span class="ident">key</span> <span class="op">=</span> <span class="ident">key</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">key</span> <span class="op">=</span> <span class="ident">key</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_remove_comment</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="number">0</span>, <span class="ident">key</span>.<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(()) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">remove_group</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_remove_group</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(()) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">remove_key</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_remove_key</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(()) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_boolean</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">value</span>: <span class="ident">bool</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_key_file_set_boolean</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">value</span>.<span class="ident">to_glib</span>());
}
}
<span class="comment">//pub fn set_boolean_list(&amp;self, group_name: &amp;str, key: &amp;str, list: /*Unimplemented*/&amp;CArray TypeId { ns_id: 0, id: 1 }) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_key_file_set_boolean_list() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_comment</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span>, <span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>, <span class="ident">Q</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;b</span> <span class="ident">str</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="ident">P</span>, <span class="ident">key</span>: <span class="ident">Q</span>, <span class="ident">comment</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">group_name</span> <span class="op">=</span> <span class="ident">group_name</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">group_name</span> <span class="op">=</span> <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>();
<span class="kw">let</span> <span class="ident">key</span> <span class="op">=</span> <span class="ident">key</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">key</span> <span class="op">=</span> <span class="ident">key</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_set_comment</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="number">0</span>, <span class="ident">key</span>.<span class="number">0</span>, <span class="ident">comment</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(()) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_double</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">value</span>: <span class="ident">f64</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_key_file_set_double</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">value</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_int64</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">value</span>: <span class="ident">i64</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_key_file_set_int64</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">value</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_integer</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">value</span>: <span class="ident">i32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_key_file_set_integer</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">value</span>);
}
}
<span class="comment">//pub fn set_list_separator(&amp;self, separator: /*Unimplemented*/Fundamental: Char) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_key_file_set_list_separator() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_locale_string</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">locale</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">string</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_key_file_set_locale_string</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">locale</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">string</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_string</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">string</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_key_file_set_string</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">string</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_uint64</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">value</span>: <span class="ident">u64</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_key_file_set_uint64</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">value</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_value</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">group_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_key_file_set_value</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">group_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">value</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">to_data</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(<span class="ident">String</span>, <span class="ident">usize</span>), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">length</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_to_data</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">length</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>((<span class="ident">from_glib_full</span>(<span class="ident">ret</span>), <span class="ident">length</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
}
<span class="kw">impl</span> <span class="ident">Default</span> <span class="kw">for</span> <span class="ident">KeyFile</span> {
<span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="self">Self</span>::<span class="ident">new</span>()
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,414 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/main_context.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>main_context.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">MainContext</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GMainContext</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_main_context_ref</span>(<span class="ident">ptr</span>),
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_main_context_unref</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">g_main_context_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">MainContext</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-&gt;</span> <span class="ident">MainContext</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_main_context_new</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">acquire</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_main_context_acquire</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="comment">//pub fn add_poll(&amp;self, fd: /*Ignored*/&amp;mut PollFD, priority: i32) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_add_poll() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn check(&amp;self, max_priority: i32, fds: /*Ignored*/&amp;[&amp;PollFD]) -&gt; i32 {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_check() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">dispatch</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_main_context_dispatch</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="comment">//pub fn find_source_by_funcs_user_data&lt;P: Into&lt;Option&lt;/*Unimplemented*/Fundamental: Pointer&gt;&gt;&gt;(&amp;self, funcs: /*Ignored*/&amp;mut SourceFuncs, user_data: P) -&gt; Option&lt;Source&gt; {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_find_source_by_funcs_user_data() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn find_source_by_user_data&lt;P: Into&lt;Option&lt;/*Unimplemented*/Fundamental: Pointer&gt;&gt;&gt;(&amp;self, user_data: P) -&gt; Option&lt;Source&gt; {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_find_source_by_user_data() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn get_poll_func(&amp;self) -&gt; /*Unknown conversion*//*Unimplemented*/PollFunc {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_get_poll_func() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn invoke&lt;P: Into&lt;Option&lt;/*Unimplemented*/Fundamental: Pointer&gt;&gt;&gt;(&amp;self, function: /*Unknown conversion*//*Unimplemented*/SourceFunc, data: P) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_invoke() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn invoke_full&lt;&#39;a, P: Into&lt;Option&lt;/*Unimplemented*/Fundamental: Pointer&gt;&gt;, Q: Into&lt;Option&lt;&amp;&#39;a /*Unimplemented*/DestroyNotify&gt;&gt;&gt;(&amp;self, priority: i32, function: /*Unknown conversion*//*Unimplemented*/SourceFunc, data: P, notify: Q) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_invoke_full() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_owner</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_main_context_is_owner</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">iteration</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">may_block</span>: <span class="ident">bool</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_main_context_iteration</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">may_block</span>.<span class="ident">to_glib</span>()))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">pending</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_main_context_pending</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">pop_thread_default</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_main_context_pop_thread_default</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">push_thread_default</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_main_context_push_thread_default</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="comment">//pub fn query(&amp;self, max_priority: i32, fds: /*Ignored*/Vec&lt;PollFD&gt;) -&gt; (i32, i32) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_query() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">release</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_main_context_release</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="comment">//pub fn remove_poll(&amp;self, fd: /*Ignored*/&amp;mut PollFD) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_remove_poll() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn set_poll_func(&amp;self, func: /*Unknown conversion*//*Unimplemented*/PollFunc) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_set_poll_func() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn wait(&amp;self, cond: /*Ignored*/&amp;mut Cond, mutex: /*Ignored*/&amp;mut Mutex) -&gt; bool {</span>
<span class="comment">// unsafe { TODO: call ffi::g_main_context_wait() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">wakeup</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_main_context_wakeup</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">MainContext</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">g_main_context_default</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_thread_default</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">MainContext</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">g_main_context_get_thread_default</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">ref_thread_default</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">MainContext</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_main_context_ref_thread_default</span>())
}
}
}
<span class="kw">impl</span> <span class="ident">Default</span> <span class="kw">for</span> <span class="ident">MainContext</span> {
<span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="self">Self</span>::<span class="ident">new</span>()
}
}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Send</span> <span class="kw">for</span> <span class="ident">MainContext</span> {}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">MainContext</span> {}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,224 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/main_loop.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>main_loop.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="kw">use</span> <span class="ident">MainContext</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">MainLoop</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GMainLoop</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_main_loop_ref</span>(<span class="ident">ptr</span>),
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_main_loop_unref</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">g_main_loop_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">MainLoop</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">MainContext</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(<span class="ident">context</span>: <span class="ident">P</span>, <span class="ident">is_running</span>: <span class="ident">bool</span>) <span class="op">-&gt;</span> <span class="ident">MainLoop</span> {
<span class="kw">let</span> <span class="ident">context</span> <span class="op">=</span> <span class="ident">context</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">context</span> <span class="op">=</span> <span class="ident">context</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_main_loop_new</span>(<span class="ident">context</span>.<span class="number">0</span>, <span class="ident">is_running</span>.<span class="ident">to_glib</span>()))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_context</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">MainContext</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">g_main_loop_get_context</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_running</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_main_loop_is_running</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">quit</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_main_loop_quit</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">run</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_main_loop_run</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Send</span> <span class="kw">for</span> <span class="ident">MainLoop</span> {}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">MainLoop</span> {}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

214
src/glib/auto/mod.rs.html Normal file
View File

@@ -0,0 +1,214 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/mod.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>mod.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="kw">mod</span> <span class="ident">checksum</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">checksum</span>::<span class="ident">Checksum</span>;
<span class="kw">mod</span> <span class="ident">date_time</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">date_time</span>::<span class="ident">DateTime</span>;
<span class="kw">mod</span> <span class="ident">key_file</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">key_file</span>::<span class="ident">KeyFile</span>;
<span class="kw">mod</span> <span class="ident">main_context</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">main_context</span>::<span class="ident">MainContext</span>;
<span class="kw">mod</span> <span class="ident">main_loop</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">main_loop</span>::<span class="ident">MainLoop</span>;
<span class="kw">mod</span> <span class="ident">source</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">source</span>::<span class="ident">Source</span>;
<span class="kw">mod</span> <span class="ident">time_zone</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">time_zone</span>::<span class="ident">TimeZone</span>;
<span class="kw">mod</span> <span class="ident">enums</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">enums</span>::<span class="ident">ChecksumType</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">enums</span>::<span class="ident">DateMonth</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">enums</span>::<span class="ident">DateWeekday</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">enums</span>::<span class="ident">KeyFileError</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">enums</span>::<span class="ident">TimeType</span>;
<span class="kw">mod</span> <span class="ident">flags</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">flags</span>::<span class="ident">FormatSizeFlags</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">flags</span>::<span class="ident">FORMAT_SIZE_DEFAULT</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">flags</span>::<span class="ident">FORMAT_SIZE_LONG_FORMAT</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">flags</span>::<span class="ident">FORMAT_SIZE_IEC_UNITS</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">flags</span>::<span class="ident">KeyFileFlags</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">flags</span>::<span class="ident">KEY_FILE_NONE</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">flags</span>::<span class="ident">KEY_FILE_KEEP_COMMENTS</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">flags</span>::<span class="ident">KEY_FILE_KEEP_TRANSLATIONS</span>;
<span class="kw">mod</span> <span class="ident">alias</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">alias</span>::<span class="ident">DateDay</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">alias</span>::<span class="ident">DateYear</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">alias</span>::<span class="ident">Time</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">alias</span>::<span class="ident">TimeSpan</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">functions</span>;
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">traits</span> {
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,408 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/source.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>source.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="kw">use</span> <span class="ident">MainContext</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Source</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GSource</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_source_ref</span>(<span class="ident">ptr</span>),
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_source_unref</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">g_source_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">Source</span> {
<span class="comment">//pub fn new(source_funcs: /*Ignored*/&amp;mut SourceFuncs, struct_size: u32) -&gt; Source {</span>
<span class="comment">// unsafe { TODO: call ffi::g_source_new() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_child_source</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">child_source</span>: <span class="kw-2">&amp;</span><span class="ident">Source</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_source_add_child_source</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">child_source</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="comment">//pub fn add_poll(&amp;self, fd: /*Ignored*/&amp;mut PollFD) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_source_add_poll() }</span>
<span class="comment">//}</span>
<span class="comment">//#[cfg(feature = &quot;v2_36&quot;)]</span>
<span class="comment">//pub fn add_unix_fd(&amp;self, fd: i32, events: /*Ignored*/IOCondition) -&gt; /*Unimplemented*/Option&lt;Fundamental: Pointer&gt; {</span>
<span class="comment">// unsafe { TODO: call ffi::g_source_add_unix_fd() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">attach</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">MainContext</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">context</span>: <span class="ident">P</span>) <span class="op">-&gt;</span> <span class="ident">u32</span> {
<span class="kw">let</span> <span class="ident">context</span> <span class="op">=</span> <span class="ident">context</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">context</span> <span class="op">=</span> <span class="ident">context</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_source_attach</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">context</span>.<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">destroy</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_source_destroy</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_can_recurse</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_source_get_can_recurse</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_context</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">MainContext</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">g_source_get_context</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="comment">//pub fn get_current_time(&amp;self, timeval: /*Ignored*/&amp;mut TimeVal) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_source_get_current_time() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_id</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">u32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_source_get_id</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_name</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">g_source_get_name</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_priority</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_source_get_priority</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_ready_time</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i64</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_source_get_ready_time</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_time</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i64</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_source_get_time</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_destroyed</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_source_is_destroyed</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="comment">//#[cfg(feature = &quot;v2_36&quot;)]</span>
<span class="comment">//pub fn modify_unix_fd(&amp;self, tag: /*Unimplemented*/Fundamental: Pointer, new_events: /*Ignored*/IOCondition) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_source_modify_unix_fd() }</span>
<span class="comment">//}</span>
<span class="comment">//#[cfg(feature = &quot;v2_36&quot;)]</span>
<span class="comment">//pub fn query_unix_fd(&amp;self, tag: /*Unimplemented*/Fundamental: Pointer) -&gt; /*Ignored*/IOCondition {</span>
<span class="comment">// unsafe { TODO: call ffi::g_source_query_unix_fd() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">remove_child_source</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">child_source</span>: <span class="kw-2">&amp;</span><span class="ident">Source</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_source_remove_child_source</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">child_source</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="comment">//pub fn remove_poll(&amp;self, fd: /*Ignored*/&amp;mut PollFD) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_source_remove_poll() }</span>
<span class="comment">//}</span>
<span class="comment">//#[cfg(feature = &quot;v2_36&quot;)]</span>
<span class="comment">//pub fn remove_unix_fd(&amp;self, tag: /*Unimplemented*/Fundamental: Pointer) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_source_remove_unix_fd() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">remove</span>(<span class="ident">tag</span>: <span class="ident">u32</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_source_remove</span>(<span class="ident">tag</span>))
}
}
<span class="comment">//pub fn remove_by_funcs_user_data&lt;P: Into&lt;Option&lt;/*Unimplemented*/Fundamental: Pointer&gt;&gt;&gt;(funcs: /*Ignored*/&amp;mut SourceFuncs, user_data: P) -&gt; bool {</span>
<span class="comment">// unsafe { TODO: call ffi::g_source_remove_by_funcs_user_data() }</span>
<span class="comment">//}</span>
<span class="comment">//pub fn remove_by_user_data&lt;P: Into&lt;Option&lt;/*Unimplemented*/Fundamental: Pointer&gt;&gt;&gt;(user_data: P) -&gt; bool {</span>
<span class="comment">// unsafe { TODO: call ffi::g_source_remove_by_user_data() }</span>
<span class="comment">//}</span>
}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Send</span> <span class="kw">for</span> <span class="ident">Source</span> {}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">Source</span> {}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,242 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/auto/time_zone.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>time_zone.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (9f70278) from gir-files (0bcaef9)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="kw">use</span> <span class="ident">TimeType</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">TimeZone</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GTimeZone</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_time_zone_ref</span>(<span class="ident">ptr</span>),
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_time_zone_unref</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">g_time_zone_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">TimeZone</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(<span class="ident">identifier</span>: <span class="ident">P</span>) <span class="op">-&gt;</span> <span class="ident">TimeZone</span> {
<span class="kw">let</span> <span class="ident">identifier</span> <span class="op">=</span> <span class="ident">identifier</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">identifier</span> <span class="op">=</span> <span class="ident">identifier</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_time_zone_new</span>(<span class="ident">identifier</span>.<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_local</span>() <span class="op">-&gt;</span> <span class="ident">TimeZone</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_time_zone_new_local</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_utc</span>() <span class="op">-&gt;</span> <span class="ident">TimeZone</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_time_zone_new_utc</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">find_interval</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">type_</span>: <span class="ident">TimeType</span>, <span class="ident">time_</span>: <span class="ident">i64</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_time_zone_find_interval</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">type_</span>.<span class="ident">to_glib</span>(), <span class="ident">time_</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_abbreviation</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">interval</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">g_time_zone_get_abbreviation</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">interval</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_offset</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">interval</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_time_zone_get_offset</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">interval</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_dst</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">interval</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_time_zone_is_dst</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">interval</span>))
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "glib";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>

932
src/glib/boxed.rs.html Normal file
View File

@@ -0,0 +1,932 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/boxed.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>boxed.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
<span id="340">340</span>
<span id="341">341</span>
<span id="342">342</span>
<span id="343">343</span>
<span id="344">344</span>
<span id="345">345</span>
<span id="346">346</span>
<span id="347">347</span>
<span id="348">348</span>
<span id="349">349</span>
<span id="350">350</span>
<span id="351">351</span>
<span id="352">352</span>
<span id="353">353</span>
<span id="354">354</span>
<span id="355">355</span>
<span id="356">356</span>
<span id="357">357</span>
<span id="358">358</span>
<span id="359">359</span>
<span id="360">360</span>
<span id="361">361</span>
<span id="362">362</span>
<span id="363">363</span>
<span id="364">364</span>
<span id="365">365</span>
<span id="366">366</span>
<span id="367">367</span>
<span id="368">368</span>
<span id="369">369</span>
<span id="370">370</span>
<span id="371">371</span>
<span id="372">372</span>
<span id="373">373</span>
<span id="374">374</span>
<span id="375">375</span>
<span id="376">376</span>
<span id="377">377</span>
<span id="378">378</span>
<span id="379">379</span>
<span id="380">380</span>
<span id="381">381</span>
<span id="382">382</span>
<span id="383">383</span>
<span id="384">384</span>
<span id="385">385</span>
<span id="386">386</span>
<span id="387">387</span>
<span id="388">388</span>
<span id="389">389</span>
<span id="390">390</span>
<span id="391">391</span>
<span id="392">392</span>
<span id="393">393</span>
<span id="394">394</span>
<span id="395">395</span>
<span id="396">396</span>
<span id="397">397</span>
<span id="398">398</span>
<span id="399">399</span>
<span id="400">400</span>
<span id="401">401</span>
<span id="402">402</span>
<span id="403">403</span>
<span id="404">404</span>
<span id="405">405</span>
<span id="406">406</span>
<span id="407">407</span>
<span id="408">408</span>
<span id="409">409</span>
<span id="410">410</span>
<span id="411">411</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2015-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="doccomment">//! `IMPL` Boxed wrapper implementation.</span>
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ops</span>::{<span class="ident">Deref</span>, <span class="ident">DerefMut</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fmt</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">marker</span>::<span class="ident">PhantomData</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="doccomment">/// Wrapper implementations for Boxed types. See `glib_wrapper!`.</span>
<span class="attribute">#[<span class="ident">macro_export</span>]</span>
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">glib_boxed_wrapper</span> {
([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span>, @<span class="ident">copy</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_arg</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_expr</span>:<span class="ident">expr</span>,
@<span class="ident">free</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_arg</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_expr</span>:<span class="ident">expr</span>,
@<span class="ident">get_type</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>:<span class="ident">expr</span>) <span class="op">=&gt;</span> {
<span class="macro">glib_boxed_wrapper</span><span class="macro">!</span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, @<span class="ident">copy</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_expr</span>,
@<span class="ident">free</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_expr</span>);
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">types</span>::<span class="ident">StaticType</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">fn</span> <span class="ident">static_type</span>() <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">types</span>::<span class="ident">Type</span> {
<span class="kw">unsafe</span> { <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>) }
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">value</span>::<span class="ident">FromValueOptional</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_value_optional</span>(<span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Value</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="prelude-ty">Option</span>::<span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span><span class="op">&gt;</span>::<span class="ident">from_glib_full</span>(<span class="ident">gobject_ffi</span>::<span class="ident">g_value_dup_boxed</span>(<span class="ident">value</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>)
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">value</span>::<span class="ident">SetValue</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">set_value</span>(<span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Value</span>, <span class="ident">this</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) {
<span class="ident">gobject_ffi</span>::<span class="ident">g_value_set_boxed</span>(<span class="ident">value</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibPtr</span>::<span class="op">&lt;</span><span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span>::<span class="ident">to_glib_none</span>(<span class="ident">this</span>).<span class="number">0</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>::<span class="ident">gpointer</span>)
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">value</span>::<span class="ident">SetValueOptional</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">set_value_optional</span>(<span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Value</span>, <span class="ident">this</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="self">Self</span><span class="op">&gt;</span>) {
<span class="ident">gobject_ffi</span>::<span class="ident">g_value_set_boxed</span>(<span class="ident">value</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibPtr</span>::<span class="op">&lt;</span><span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span>::<span class="ident">to_glib_none</span>(<span class="kw-2">&amp;</span><span class="ident">this</span>).<span class="number">0</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>::<span class="ident">gpointer</span>)
}
}
};
([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span>, @<span class="ident">copy</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_arg</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_expr</span>:<span class="ident">expr</span>,
@<span class="ident">free</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_arg</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_expr</span>:<span class="ident">expr</span>) <span class="op">=&gt;</span> {
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>]</span>)<span class="op">*</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Debug</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">boxed</span>::<span class="ident">Boxed</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">MemoryManager</span><span class="op">&gt;</span>);
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">MemoryManager</span>;
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">boxed</span>::<span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">MemoryManager</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">copy</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_arg</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span> {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_expr</span>
}
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">free</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_arg</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_expr</span>
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">Uninitialized</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">uninitialized</span>() <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">boxed</span>::<span class="ident">Boxed</span>::<span class="ident">uninitialized</span>())
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">GlibPtrDefault</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>;
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibPtr</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">boxed</span>::<span class="ident">Boxed</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">MemoryManager</span><span class="op">&gt;</span>;
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_none</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">Stash</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">stash</span> <span class="op">=</span> <span class="self">self</span>.<span class="number">0</span>.<span class="ident">to_glib_none</span>();
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">Stash</span>(<span class="ident">stash</span>.<span class="number">0</span>, <span class="ident">stash</span>.<span class="number">1</span>)
}
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_full</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span> {
(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="number">0</span>).<span class="ident">to_glib_full</span>()
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibPtrMut</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">boxed</span>::<span class="ident">Boxed</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">MemoryManager</span><span class="op">&gt;</span>;
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_none_mut</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">StashMut</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">stash</span> <span class="op">=</span> <span class="self">self</span>.<span class="number">0</span>.<span class="ident">to_glib_none_mut</span>();
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">StashMut</span>(<span class="ident">stash</span>.<span class="number">0</span>, <span class="ident">stash</span>.<span class="number">1</span>)
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibContainerFromSlice</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> (<span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Stash</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span><span class="op">&gt;&gt;</span>, <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;&gt;</span>);
<span class="kw">fn</span> <span class="ident">to_glib_none_from_slice</span>(<span class="ident">t</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> [<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> (<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span>::<span class="ident">Storage</span>) {
<span class="kw">let</span> <span class="ident">v</span>: <span class="ident">Vec</span><span class="op">&lt;</span>_<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">t</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">s</span><span class="op">|</span> <span class="ident">s</span>.<span class="ident">to_glib_none</span>()).<span class="ident">collect</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">v_ptr</span>: <span class="ident">Vec</span><span class="op">&lt;</span>_<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">v</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">s</span><span class="op">|</span> <span class="ident">s</span>.<span class="number">0</span>).<span class="ident">collect</span>();
<span class="ident">v_ptr</span>.<span class="ident">push</span>(<span class="ident">ptr</span>::<span class="ident">null_mut</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>);
(<span class="ident">v_ptr</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, (<span class="ident">v</span>, <span class="prelude-val">Some</span>(<span class="ident">v_ptr</span>)))
}
<span class="kw">fn</span> <span class="ident">to_glib_container_from_slice</span>(<span class="ident">t</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> [<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> (<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span>::<span class="ident">Storage</span>) {
<span class="kw">let</span> <span class="ident">v</span>: <span class="ident">Vec</span><span class="op">&lt;</span>_<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">t</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">s</span><span class="op">|</span> <span class="ident">s</span>.<span class="ident">to_glib_none</span>()).<span class="ident">collect</span>();
<span class="kw">let</span> <span class="ident">v_ptr</span> <span class="op">=</span> <span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">v_ptr</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_malloc0</span>(<span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op">&lt;</span><span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span>() <span class="op">*</span> <span class="ident">t</span>.<span class="ident">len</span>() <span class="op">+</span> <span class="number">1</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>;
<span class="kw">for</span> (<span class="ident">i</span>, <span class="ident">s</span>) <span class="kw">in</span> <span class="ident">v</span>.<span class="ident">iter</span>().<span class="ident">enumerate</span>() {
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">v_ptr</span>.<span class="ident">offset</span>(<span class="ident">i</span> <span class="kw">as</span> <span class="ident">isize</span>), <span class="ident">s</span>.<span class="number">0</span>);
}
<span class="ident">v_ptr</span>
};
(<span class="ident">v_ptr</span>, (<span class="ident">v</span>, <span class="prelude-val">None</span>))
}
<span class="kw">fn</span> <span class="ident">to_glib_full_from_slice</span>(<span class="ident">t</span>: <span class="kw-2">&amp;</span>[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">v_ptr</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_malloc0</span>(<span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op">&lt;</span><span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span>() <span class="op">*</span> <span class="ident">t</span>.<span class="ident">len</span>() <span class="op">+</span> <span class="number">1</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>;
<span class="kw">for</span> (<span class="ident">i</span>, <span class="ident">s</span>) <span class="kw">in</span> <span class="ident">t</span>.<span class="ident">iter</span>().<span class="ident">enumerate</span>() {
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">v_ptr</span>.<span class="ident">offset</span>(<span class="ident">i</span> <span class="kw">as</span> <span class="ident">isize</span>), <span class="ident">s</span>.<span class="ident">to_glib_full</span>());
}
<span class="ident">v_ptr</span>
}
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibContainerFromSlice</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> (<span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Stash</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span><span class="op">&gt;&gt;</span>, <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;&gt;</span>);
<span class="kw">fn</span> <span class="ident">to_glib_none_from_slice</span>(<span class="ident">t</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> [<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> (<span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span>::<span class="ident">Storage</span>) {
<span class="kw">let</span> (<span class="ident">ptr</span>, <span class="ident">stash</span>) <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibContainerFromSlice</span>::<span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span>::<span class="ident">to_glib_none_from_slice</span>(<span class="ident">t</span>);
(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">stash</span>)
}
<span class="kw">fn</span> <span class="ident">to_glib_container_from_slice</span>(_: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> [<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> (<span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span>::<span class="ident">Storage</span>) {
<span class="comment">// Can&#39;t have consumer free a *const pointer</span>
<span class="macro">unimplemented</span><span class="macro">!</span>()
}
<span class="kw">fn</span> <span class="ident">to_glib_full_from_slice</span>(_: <span class="kw-2">&amp;</span>[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span> {
<span class="comment">// Can&#39;t have consumer free a *const pointer</span>
<span class="macro">unimplemented</span><span class="macro">!</span>()
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibPtrNone</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib_none</span>(<span class="ident">ptr</span>))
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibPtrFull</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibPtrBorrow</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_borrow</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib_borrow</span>(<span class="ident">ptr</span>))
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none_num_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">num</span>: <span class="ident">usize</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">if</span> <span class="ident">num</span> <span class="op">==</span> <span class="number">0</span> <span class="op">||</span> <span class="ident">ptr</span>.<span class="ident">is_null</span>() {
<span class="kw">return</span> <span class="ident">Vec</span>::<span class="ident">new</span>();
}
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="ident">num</span>);
<span class="kw">for</span> <span class="ident">i</span> <span class="kw">in</span> <span class="number">0</span>..<span class="ident">num</span> {
<span class="ident">res</span>.<span class="ident">push</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib_none</span>(<span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">ptr</span>.<span class="ident">offset</span>(<span class="ident">i</span> <span class="kw">as</span> <span class="ident">isize</span>))));
}
<span class="ident">res</span>
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_container_num_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">num</span>: <span class="ident">usize</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span>::<span class="ident">from_glib_none_num_as_vec</span>(<span class="ident">ptr</span>, <span class="ident">num</span>);
<span class="ident">glib_ffi</span>::<span class="ident">g_free</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _);
<span class="ident">res</span>
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full_num_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">num</span>: <span class="ident">usize</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">if</span> <span class="ident">num</span> <span class="op">==</span> <span class="number">0</span> <span class="op">||</span> <span class="ident">ptr</span>.<span class="ident">is_null</span>() {
<span class="kw">return</span> <span class="ident">Vec</span>::<span class="ident">new</span>();
}
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="ident">num</span>);
<span class="kw">for</span> <span class="ident">i</span> <span class="kw">in</span> <span class="number">0</span>..<span class="ident">num</span> {
<span class="ident">res</span>.<span class="ident">push</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">ptr</span>.<span class="ident">offset</span>(<span class="ident">i</span> <span class="kw">as</span> <span class="ident">isize</span>))));
}
<span class="ident">glib_ffi</span>::<span class="ident">g_free</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _);
<span class="ident">res</span>
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibPtrArrayContainerAsVec</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span>::<span class="ident">from_glib_none_num_as_vec</span>(<span class="ident">ptr</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">c_ptr_array_len</span>(<span class="ident">ptr</span>))
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_container_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span>::<span class="ident">from_glib_container_num_as_vec</span>(<span class="ident">ptr</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">c_ptr_array_len</span>(<span class="ident">ptr</span>))
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span>::<span class="ident">from_glib_full_num_as_vec</span>(<span class="ident">ptr</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">c_ptr_array_len</span>(<span class="ident">ptr</span>))
}
}
}
}
<span class="kw">enum</span> <span class="ident">AnyBox</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="ident">Native</span>(<span class="ident">Box</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span>),
<span class="ident">ForeignOwned</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>),
<span class="ident">ForeignBorrowed</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>),
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> <span class="ident">fmt</span>::<span class="ident">Debug</span> <span class="kw">for</span> <span class="ident">AnyBox</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">AnyBox</span>::<span class="kw-2">*</span>;
<span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
<span class="ident">Native</span>(<span class="kw-2">ref</span> <span class="ident">b</span>) <span class="op">=&gt;</span> <span class="macro">write</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot;Native({:?})&quot;</span>, <span class="kw-2">&amp;</span><span class="kw-2">*</span><span class="kw-2">*</span><span class="ident">b</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>),
<span class="ident">ForeignOwned</span>(<span class="ident">ptr</span>) <span class="op">=&gt;</span> <span class="macro">write</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot;ForeignOwned({:?})&quot;</span>, <span class="ident">ptr</span>),
<span class="ident">ForeignBorrowed</span>(<span class="ident">ptr</span>) <span class="op">=&gt;</span> <span class="macro">write</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot;ForeignBorrowed({:?})&quot;</span>, <span class="ident">ptr</span>),
}
}
}
<span class="doccomment">/// Memory management functions for a boxed type.</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span>: <span class="lifetime">&#39;static</span> {
<span class="doccomment">/// Makes a copy.</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">copy</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>;
<span class="doccomment">/// Frees the object.</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">free</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>);
}
<span class="doccomment">/// Encapsulates memory management logic for boxed types.</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> {
<span class="ident">inner</span>: <span class="ident">AnyBox</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span>,
<span class="ident">_dummy</span>: <span class="ident">PhantomData</span><span class="op">&lt;</span><span class="ident">MM</span><span class="op">&gt;</span>,
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">uninitialized</span>() <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="ident">Boxed</span> {
<span class="ident">inner</span>: <span class="ident">AnyBox</span>::<span class="ident">Native</span>(<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">mem</span>::<span class="ident">uninitialized</span>())),
<span class="ident">_dummy</span>: <span class="ident">PhantomData</span>,
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">Uninitialized</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">uninitialized</span>() <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="ident">Boxed</span> {
<span class="ident">inner</span>: <span class="ident">AnyBox</span>::<span class="ident">Native</span>(<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">mem</span>::<span class="ident">uninitialized</span>())),
<span class="ident">_dummy</span>: <span class="ident">PhantomData</span>,
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">ToGlibPtr</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="self">Self</span>;
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_none</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Stash</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>, <span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">AnyBox</span>::<span class="kw-2">*</span>;
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="kw">match</span> <span class="self">self</span>.<span class="ident">inner</span> {
<span class="ident">Native</span>(<span class="kw-2">ref</span> <span class="ident">b</span>) <span class="op">=&gt;</span> <span class="kw-2">&amp;</span><span class="kw-2">*</span><span class="kw-2">*</span><span class="ident">b</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>,
<span class="ident">ForeignOwned</span>(<span class="ident">p</span>) <span class="op">|</span> <span class="ident">ForeignBorrowed</span>(<span class="ident">p</span>) <span class="op">=&gt;</span> <span class="ident">p</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>,
};
<span class="ident">Stash</span>(<span class="ident">ptr</span>, <span class="self">self</span>)
}
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_full</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span> {
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">AnyBox</span>::<span class="kw-2">*</span>;
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="kw">match</span> <span class="self">self</span>.<span class="ident">inner</span> {
<span class="ident">Native</span>(<span class="kw-2">ref</span> <span class="ident">b</span>) <span class="op">=&gt;</span> <span class="kw-2">&amp;</span><span class="kw-2">*</span><span class="kw-2">*</span><span class="ident">b</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>,
<span class="ident">ForeignOwned</span>(<span class="ident">p</span>) <span class="op">|</span> <span class="ident">ForeignBorrowed</span>(<span class="ident">p</span>) <span class="op">=&gt;</span> <span class="ident">p</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>,
};
<span class="kw">unsafe</span> { <span class="ident">MM</span>::<span class="ident">copy</span>(<span class="ident">ptr</span>) }
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">ToGlibPtrMut</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="kw-2">mut</span> <span class="self">Self</span>;
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_none_mut</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">StashMut</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>, <span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">AnyBox</span>::<span class="kw-2">*</span>;
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="kw">match</span> <span class="self">self</span>.<span class="ident">inner</span> {
<span class="ident">Native</span>(<span class="kw-2">ref</span> <span class="kw-2">mut</span> <span class="ident">b</span>) <span class="op">=&gt;</span> <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">*</span><span class="ident">b</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>,
<span class="ident">ForeignOwned</span>(<span class="ident">p</span>) <span class="op">|</span> <span class="ident">ForeignBorrowed</span>(<span class="ident">p</span>) <span class="op">=&gt;</span> <span class="ident">p</span>,
};
<span class="ident">StashMut</span>(<span class="ident">ptr</span>, <span class="self">self</span>)
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">FromGlibPtrNone</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="op">!</span><span class="ident">ptr</span>.<span class="ident">is_null</span>());
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">MM</span>::<span class="ident">copy</span>(<span class="ident">ptr</span>);
<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>)
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">FromGlibPtrFull</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="op">!</span><span class="ident">ptr</span>.<span class="ident">is_null</span>());
<span class="ident">Boxed</span> {
<span class="ident">inner</span>: <span class="ident">AnyBox</span>::<span class="ident">ForeignOwned</span>(<span class="ident">ptr</span>),
<span class="ident">_dummy</span>: <span class="ident">PhantomData</span>,
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">FromGlibPtrBorrow</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_borrow</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="op">!</span><span class="ident">ptr</span>.<span class="ident">is_null</span>());
<span class="ident">Boxed</span> {
<span class="ident">inner</span>: <span class="ident">AnyBox</span>::<span class="ident">ForeignBorrowed</span>(<span class="ident">ptr</span>),
<span class="ident">_dummy</span>: <span class="ident">PhantomData</span>,
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">Drop</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">drop</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="kw">if</span> <span class="kw">let</span> <span class="ident">AnyBox</span>::<span class="ident">ForeignOwned</span>(<span class="ident">ptr</span>) <span class="op">=</span> <span class="self">self</span>.<span class="ident">inner</span> {
<span class="ident">MM</span>::<span class="ident">free</span>(<span class="ident">ptr</span>);
}
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">fmt</span>::<span class="ident">Debug</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="macro">write</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot;Boxed {{ inner: {:?} }}&quot;</span>, <span class="self">self</span>.<span class="ident">inner</span>)
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">Clone</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">clone</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>)
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">Deref</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="kw">type</span> <span class="ident">Target</span> <span class="op">=</span> <span class="ident">T</span>;
<span class="kw">fn</span> <span class="ident">deref</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">T</span> {
<span class="kw">unsafe</span> {
<span class="comment">// This is safe because the pointer will remain valid while self is borrowed</span>
<span class="kw-2">&amp;</span><span class="kw-2">*</span><span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">BoxedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">DerefMut</span> <span class="kw">for</span> <span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">deref_mut</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">T</span> {
<span class="kw">unsafe</span> {
<span class="comment">// This is safe because the pointer will remain valid while self is borrowed</span>
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

538
src/glib/bytes.rs.html Normal file
View File

@@ -0,0 +1,538 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/bytes.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>bytes.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">borrow</span>::<span class="ident">Borrow</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cmp</span>::{<span class="ident">Eq</span>, <span class="ident">Ord</span>, <span class="ident">Ordering</span>, <span class="ident">PartialEq</span>, <span class="ident">PartialOrd</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fmt</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">hash</span>::{<span class="ident">Hash</span>, <span class="ident">Hasher</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ops</span>::<span class="ident">Deref</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">slice</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="doccomment">/// A shared immutable byte slice (the equivalent of `Rc&lt;[u8]&gt;`).</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `From` implementations that take references (e.g. `&amp;[u8]`) copy the</span>
<span class="doccomment">/// data. The `from_static` constructor avoids copying static data.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```</span>
<span class="doccomment">/// use glib::Bytes;</span>
<span class="doccomment">///</span>
<span class="doccomment">/// let v = vec![1, 2, 3];</span>
<span class="doccomment">/// let b = Bytes::from(&amp;v);</span>
<span class="doccomment">/// assert_eq!(v, b);</span>
<span class="doccomment">///</span>
<span class="doccomment">/// let s = b&quot;xyz&quot;;</span>
<span class="doccomment">/// let b = Bytes::from_static(s);</span>
<span class="doccomment">/// assert_eq!(&amp;s[..], b);</span>
<span class="doccomment">/// ```</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Bytes</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">glib_ffi</span>::<span class="ident">GBytes</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">glib_ffi</span>::<span class="ident">g_bytes_ref</span>(<span class="ident">ptr</span>),
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">glib_ffi</span>::<span class="ident">g_bytes_unref</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">glib_ffi</span>::<span class="ident">g_bytes_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">Bytes</span> {
<span class="doccomment">/// Copies `data` into a new shared slice.</span>
<span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">data</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>]) <span class="op">-&gt;</span> <span class="ident">Bytes</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_full</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_bytes_new</span>(<span class="ident">data</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _, <span class="ident">data</span>.<span class="ident">len</span>())) }
}
<span class="doccomment">/// Creates a view into static `data` without copying.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">from_static</span>(<span class="ident">data</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> [<span class="ident">u8</span>]) <span class="op">-&gt;</span> <span class="ident">Bytes</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_bytes_new_static</span>(<span class="ident">data</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _, <span class="ident">data</span>.<span class="ident">len</span>()))
}
}
}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Send</span> <span class="kw">for</span> <span class="ident">Bytes</span> { }
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">Bytes</span> { }
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">T</span>: <span class="question-mark">?</span><span class="ident">Sized</span> <span class="op">+</span> <span class="ident">Borrow</span><span class="op">&lt;</span>[<span class="ident">u8</span>]<span class="op">&gt;</span> <span class="op">+</span> <span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">From</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Bytes</span> {
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="ident">Bytes</span> {
<span class="ident">Bytes</span>::<span class="ident">new</span>(<span class="ident">value</span>.<span class="ident">borrow</span>())
}
}
<span class="kw">impl</span> <span class="ident">fmt</span>::<span class="ident">Debug</span> <span class="kw">for</span> <span class="ident">Bytes</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="ident">f</span>.<span class="ident">debug_struct</span>(<span class="string">&quot;Bytes&quot;</span>)
.<span class="ident">field</span>(<span class="string">&quot;ptr&quot;</span>, <span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
.<span class="ident">field</span>(<span class="string">&quot;data&quot;</span>, <span class="op">&amp;&amp;</span><span class="self">self</span>[..])
.<span class="ident">finish</span>()
}
}
<span class="kw">impl</span> <span class="ident">Deref</span> <span class="kw">for</span> <span class="ident">Bytes</span> {
<span class="kw">type</span> <span class="ident">Target</span> <span class="op">=</span> [<span class="ident">u8</span>];
<span class="kw">fn</span> <span class="ident">deref</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span>[<span class="ident">u8</span>] {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">len</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_bytes_get_data</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">len</span>);
<span class="macro">debug_assert</span><span class="macro">!</span>(<span class="op">!</span><span class="ident">ptr</span>.<span class="ident">is_null</span>() <span class="op">||</span> <span class="ident">len</span> <span class="op">==</span> <span class="number">0</span>);
<span class="ident">slice</span>::<span class="ident">from_raw_parts</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">u8</span>, <span class="ident">len</span>)
}
}
}
<span class="kw">impl</span> <span class="ident">PartialEq</span> <span class="kw">for</span> <span class="ident">Bytes</span> {
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(
<span class="ident">glib_ffi</span>::<span class="ident">g_bytes_equal</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _,
<span class="ident">other</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _))
}
}
}
<span class="kw">impl</span> <span class="ident">Eq</span> <span class="kw">for</span> <span class="ident">Bytes</span> { }
<span class="kw">impl</span> <span class="ident">PartialOrd</span> <span class="kw">for</span> <span class="ident">Bytes</span> {
<span class="kw">fn</span> <span class="ident">partial_cmp</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Ordering</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_bytes_compare</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _,
<span class="ident">other</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _);
<span class="ident">ret</span>.<span class="ident">partial_cmp</span>(<span class="kw-2">&amp;</span><span class="number">0</span>)
}
}
}
<span class="kw">impl</span> <span class="ident">Ord</span> <span class="kw">for</span> <span class="ident">Bytes</span> {
<span class="kw">fn</span> <span class="ident">cmp</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">Ordering</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_bytes_compare</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _,
<span class="ident">other</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _);
<span class="ident">ret</span>.<span class="ident">cmp</span>(<span class="kw-2">&amp;</span><span class="number">0</span>)
}
}
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">impl_cmp</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span>:<span class="ident">ty</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span>: <span class="ident">ty</span>) <span class="op">=&gt;</span> {
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span><span class="op">&gt;</span> <span class="ident">PartialEq</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="self">self</span>[..].<span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="ident">other</span>[..])
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span><span class="op">&gt;</span> <span class="ident">PartialEq</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="self">self</span>[..].<span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="ident">other</span>[..])
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span><span class="op">&gt;</span> <span class="ident">PartialOrd</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">partial_cmp</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Ordering</span><span class="op">&gt;</span> {
<span class="self">self</span>[..].<span class="ident">partial_cmp</span>(<span class="kw-2">&amp;</span><span class="ident">other</span>[..])
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span><span class="op">&gt;</span> <span class="ident">PartialOrd</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">partial_cmp</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Ordering</span><span class="op">&gt;</span> {
<span class="self">self</span>[..].<span class="ident">partial_cmp</span>(<span class="kw-2">&amp;</span><span class="ident">other</span>[..])
}
}
}
}
<span class="macro">impl_cmp</span><span class="macro">!</span>(<span class="ident">Bytes</span>, [<span class="ident">u8</span>]);
<span class="macro">impl_cmp</span><span class="macro">!</span>(<span class="ident">Bytes</span>, <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> [<span class="ident">u8</span>]);
<span class="macro">impl_cmp</span><span class="macro">!</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">Bytes</span>, [<span class="ident">u8</span>]);
<span class="macro">impl_cmp</span><span class="macro">!</span>(<span class="ident">Bytes</span>, <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span>);
<span class="macro">impl_cmp</span><span class="macro">!</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">Bytes</span>, <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span>);
<span class="kw">impl</span> <span class="ident">Hash</span> <span class="kw">for</span> <span class="ident">Bytes</span> {
<span class="kw">fn</span> <span class="ident">hash</span><span class="op">&lt;</span><span class="ident">H</span>: <span class="ident">Hasher</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">state</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">H</span>) {
<span class="self">self</span>.<span class="ident">len</span>().<span class="ident">hash</span>(<span class="ident">state</span>);
<span class="ident">Hash</span>::<span class="ident">hash_slice</span>(<span class="self">self</span>, <span class="ident">state</span>)
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashSet</span>;
<span class="kw">use</span> <span class="kw">super</span>::<span class="kw-2">*</span>;
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>() {
<span class="kw">let</span> <span class="ident">abc</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>] <span class="op">=</span> <span class="string">b&quot;abc&quot;</span>;
<span class="kw">let</span> <span class="ident">def</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>] <span class="op">=</span> <span class="string">b&quot;def&quot;</span>;
<span class="kw">let</span> <span class="ident">a1</span> <span class="op">=</span> <span class="ident">Bytes</span>::<span class="ident">from</span>(<span class="ident">abc</span>);
<span class="kw">let</span> <span class="ident">a2</span> <span class="op">=</span> <span class="ident">Bytes</span>::<span class="ident">from</span>(<span class="ident">abc</span>);
<span class="kw">let</span> <span class="ident">d</span> <span class="op">=</span> <span class="ident">Bytes</span>::<span class="ident">from</span>(<span class="ident">def</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">a1</span>, <span class="ident">a2</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">def</span>, <span class="ident">d</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">a1</span> <span class="op">!=</span> <span class="ident">d</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">a1</span> <span class="op">!=</span> <span class="ident">def</span>);
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">ord</span>() {
<span class="kw">let</span> <span class="ident">abc</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>] <span class="op">=</span> <span class="string">b&quot;abc&quot;</span>;
<span class="kw">let</span> <span class="ident">def</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>] <span class="op">=</span> <span class="string">b&quot;def&quot;</span>;
<span class="kw">let</span> <span class="ident">a</span> <span class="op">=</span> <span class="ident">Bytes</span>::<span class="ident">from</span>(<span class="ident">abc</span>);
<span class="kw">let</span> <span class="ident">d</span> <span class="op">=</span> <span class="ident">Bytes</span>::<span class="ident">from</span>(<span class="ident">def</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">a</span> <span class="op">&lt;</span> <span class="ident">d</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">a</span> <span class="op">&lt;</span> <span class="ident">def</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">abc</span> <span class="op">&lt;</span> <span class="ident">d</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">d</span> <span class="op">&gt;</span> <span class="ident">a</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">d</span> <span class="op">&gt;</span> <span class="ident">abc</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">def</span> <span class="op">&gt;</span> <span class="ident">a</span>);
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">hash</span>() {
<span class="kw">let</span> <span class="ident">b1</span> <span class="op">=</span> <span class="ident">Bytes</span>::<span class="ident">from</span>(<span class="string">b&quot;this is a test&quot;</span>);
<span class="kw">let</span> <span class="ident">b2</span> <span class="op">=</span> <span class="ident">Bytes</span>::<span class="ident">from</span>(<span class="string">b&quot;this is a test&quot;</span>);
<span class="kw">let</span> <span class="ident">b3</span> <span class="op">=</span> <span class="ident">Bytes</span>::<span class="ident">from</span>(<span class="string">b&quot;test&quot;</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">set</span> <span class="op">=</span> <span class="ident">HashSet</span>::<span class="ident">new</span>();
<span class="ident">set</span>.<span class="ident">insert</span>(<span class="ident">b1</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">set</span>.<span class="ident">contains</span>(<span class="kw-2">&amp;</span><span class="ident">b2</span>));
<span class="macro">assert</span><span class="macro">!</span>(<span class="op">!</span><span class="ident">set</span>.<span class="ident">contains</span>(<span class="kw-2">&amp;</span><span class="ident">b3</span>));
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">from_static</span>() {
<span class="kw">let</span> <span class="ident">b1</span> <span class="op">=</span> <span class="ident">Bytes</span>::<span class="ident">from_static</span>(<span class="string">b&quot;this is a test&quot;</span>);
<span class="kw">let</span> <span class="ident">b2</span> <span class="op">=</span> <span class="ident">Bytes</span>::<span class="ident">from</span>(<span class="string">b&quot;this is a test&quot;</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">b1</span>, <span class="ident">b2</span>);
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

282
src/glib/checksum.rs.html Normal file
View File

@@ -0,0 +1,282 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/checksum.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>checksum.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
<span id="72">72</span>
<span id="73">73</span>
<span id="74">74</span>
<span id="75">75</span>
<span id="76">76</span>
<span id="77">77</span>
<span id="78">78</span>
<span id="79">79</span>
<span id="80">80</span>
<span id="81">81</span>
<span id="82">82</span>
<span id="83">83</span>
<span id="84">84</span>
<span id="85">85</span>
<span id="86">86</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">vec</span>::<span class="ident">Vec</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">libc</span>::<span class="ident">size_t</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">Checksum</span>;
<span class="kw">impl</span> <span class="ident">Checksum</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_digest</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">u8</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="comment">//Don&#39;t forget update when `ChecksumType` contains type bigger that Sha512.</span>
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">digest_len</span>: <span class="ident">size_t</span> <span class="op">=</span> <span class="number">512</span> <span class="op">/</span> <span class="number">8</span>;
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">vec</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="ident">digest_len</span> <span class="kw">as</span> <span class="ident">usize</span>);
<span class="ident">ffi</span>::<span class="ident">g_checksum_get_digest</span>(
<span class="ident">mut_override</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>),
<span class="ident">vec</span>.<span class="ident">as_mut_ptr</span>(),
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">digest_len</span>,
);
<span class="ident">vec</span>.<span class="ident">set_len</span>(<span class="ident">digest_len</span>);
<span class="ident">vec</span>
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_string</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">g_checksum_get_string</span>(
<span class="ident">mut_override</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>),
))
}
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> {<span class="ident">Checksum</span>, <span class="ident">ChecksumType</span>};
<span class="kw">const</span> <span class="ident">CS_TYPE</span>: <span class="ident">ChecksumType</span> <span class="op">=</span> <span class="ident">ChecksumType</span>::<span class="ident">Md5</span>;
<span class="kw">const</span> <span class="ident">CS_VALUE</span>: <span class="kw-2">&amp;</span><span class="ident">str</span> <span class="op">=</span> <span class="string">&quot;fc3ff98e8c6a0d3087d515c0473f8677&quot;</span>;
<span class="kw">const</span> <span class="ident">CS_SLICE</span>: <span class="kw-2">&amp;</span>[<span class="ident">u8</span>] <span class="op">=</span> <span class="kw-2">&amp;</span>[
<span class="number">0xfc</span>,
<span class="number">0x3f</span>,
<span class="number">0xf9</span>,
<span class="number">0x8e</span>,
<span class="number">0x8c</span>,
<span class="number">0x6a</span>,
<span class="number">0x0d</span>,
<span class="number">0x30</span>,
<span class="number">0x87</span>,
<span class="number">0xd5</span>,
<span class="number">0x15</span>,
<span class="number">0xc0</span>,
<span class="number">0x47</span>,
<span class="number">0x3f</span>,
<span class="number">0x86</span>,
<span class="number">0x77</span>,
];
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">update</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cs</span> <span class="op">=</span> <span class="ident">Checksum</span>::<span class="ident">new</span>(<span class="ident">CS_TYPE</span>);
<span class="ident">cs</span>.<span class="ident">update</span>(<span class="string">&quot;hello world!&quot;</span>.<span class="ident">as_bytes</span>());
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">cs</span>.<span class="ident">get_string</span>().<span class="ident">unwrap</span>(), <span class="ident">CS_VALUE</span>);
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">update_multi_call</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cs</span> <span class="op">=</span> <span class="ident">Checksum</span>::<span class="ident">new</span>(<span class="ident">CS_TYPE</span>);
<span class="ident">cs</span>.<span class="ident">update</span>(<span class="string">&quot;hello &quot;</span>.<span class="ident">as_bytes</span>());
<span class="ident">cs</span>.<span class="ident">update</span>(<span class="string">&quot;world!&quot;</span>.<span class="ident">as_bytes</span>());
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">cs</span>.<span class="ident">get_string</span>().<span class="ident">unwrap</span>(), <span class="ident">CS_VALUE</span>);
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">get_digest</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">cs</span> <span class="op">=</span> <span class="ident">Checksum</span>::<span class="ident">new</span>(<span class="ident">CS_TYPE</span>);
<span class="ident">cs</span>.<span class="ident">update</span>(<span class="string">&quot;hello world!&quot;</span>.<span class="ident">as_bytes</span>());
<span class="kw">let</span> <span class="ident">vec</span> <span class="op">=</span> <span class="ident">cs</span>.<span class="ident">get_digest</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">vec</span>, <span class="ident">CS_SLICE</span>);
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

386
src/glib/closure.rs.html Normal file
View File

@@ -0,0 +1,386 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/closure.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>closure.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2017, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="comment">// TODO: support marshaller.</span>
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">slice</span>;
<span class="kw">use</span> <span class="ident">libc</span>::{<span class="ident">c_uint</span>, <span class="ident">c_void</span>};
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">translate</span>::{<span class="ident">ToGlibPtr</span>, <span class="ident">ToGlibPtrMut</span>, <span class="ident">FromGlibPtrFull</span>, <span class="ident">Uninitialized</span>, <span class="ident">Stash</span>, <span class="ident">from_glib_none</span>};
<span class="kw">use</span> <span class="ident">types</span>::<span class="ident">Type</span>;
<span class="kw">use</span> <span class="ident">Value</span>;
<span class="kw">use</span> <span class="ident">ToValue</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Closure</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">gobject_ffi</span>::<span class="ident">GClosure</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> {
<span class="ident">gobject_ffi</span>::<span class="ident">g_closure_ref</span>(<span class="ident">ptr</span>);
<span class="ident">gobject_ffi</span>::<span class="ident">g_closure_sink</span>(<span class="ident">ptr</span>);
},
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">gobject_ffi</span>::<span class="ident">g_closure_unref</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">gobject_ffi</span>::<span class="ident">g_closure_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">Closure</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span><span class="op">&lt;</span><span class="ident">F</span>: <span class="ident">Fn</span>(<span class="kw-2">&amp;</span>[<span class="ident">Value</span>]) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Value</span><span class="op">&gt;</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="ident">Sync</span> <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;</span>(<span class="ident">callback</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span> <span class="ident">marshal</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">_closure</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gobject_ffi</span>::<span class="ident">GClosure</span>, <span class="ident">return_value</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gobject_ffi</span>::<span class="ident">GValue</span>,
<span class="ident">n_param_values</span>: <span class="ident">c_uint</span>, <span class="ident">param_values</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gobject_ffi</span>::<span class="ident">GValue</span>, <span class="ident">_invocation_hint</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>,
<span class="ident">marshal_data</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>)
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">Fn</span>(<span class="kw-2">&amp;</span>[<span class="ident">Value</span>]) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Value</span><span class="op">&gt;</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="ident">Sync</span> <span class="op">+</span> <span class="lifetime">&#39;static</span>
{
<span class="kw">let</span> <span class="ident">values</span> <span class="op">=</span> <span class="ident">slice</span>::<span class="ident">from_raw_parts</span>(<span class="ident">param_values</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _, <span class="ident">n_param_values</span> <span class="kw">as</span> <span class="ident">usize</span>);
<span class="kw">let</span> <span class="ident">callback</span>: <span class="ident">Box</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">Box</span>::<span class="ident">from_raw</span>(<span class="ident">marshal_data</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _);
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">callback</span>(<span class="ident">values</span>);
<span class="kw">if</span> <span class="op">!</span><span class="ident">return_value</span>.<span class="ident">is_null</span>() {
<span class="kw">match</span> <span class="ident">result</span> {
<span class="prelude-val">Some</span>(<span class="ident">result</span>) <span class="op">=&gt;</span> <span class="kw-2">*</span><span class="ident">return_value</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">into_raw</span>(),
<span class="prelude-val">None</span> <span class="op">=&gt;</span> {
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">Value</span>::<span class="ident">uninitialized</span>();
<span class="kw-2">*</span><span class="ident">return_value</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">into_raw</span>();
},
}
}
<span class="ident">mem</span>::<span class="ident">forget</span>(<span class="ident">callback</span>);
}
<span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span> <span class="ident">finalize</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">notify_data</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>, <span class="ident">_closure</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gobject_ffi</span>::<span class="ident">GClosure</span>)
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">Fn</span>(<span class="kw-2">&amp;</span>[<span class="ident">Value</span>]) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Value</span><span class="op">&gt;</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="ident">Sync</span> <span class="op">+</span> <span class="lifetime">&#39;static</span>
{
<span class="kw">let</span> <span class="ident">_callback</span>: <span class="ident">Box</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">Box</span>::<span class="ident">from_raw</span>(<span class="ident">notify_data</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _);
<span class="comment">// callback is dropped here.</span>
}
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">size</span> <span class="op">=</span> <span class="number">4</span> <span class="op">+</span> <span class="number">4</span> <span class="op">+</span> <span class="number">3</span> <span class="op">*</span> <span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span><span class="op">&gt;</span>() <span class="kw">as</span> <span class="ident">u32</span>;
<span class="kw">let</span> <span class="ident">closure</span> <span class="op">=</span> <span class="ident">gobject_ffi</span>::<span class="ident">g_closure_new_simple</span>(<span class="ident">size</span>, <span class="ident">ptr</span>::<span class="ident">null_mut</span>());
<span class="macro">assert_ne</span><span class="macro">!</span>(<span class="ident">closure</span>, <span class="ident">ptr</span>::<span class="ident">null_mut</span>());
<span class="kw">let</span> <span class="ident">callback</span> <span class="op">=</span> <span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">callback</span>);
<span class="kw">let</span> <span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">F</span> <span class="op">=</span> <span class="ident">Box</span>::<span class="ident">into_raw</span>(<span class="ident">callback</span>);
<span class="kw">let</span> <span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span> <span class="op">=</span> <span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _;
<span class="ident">gobject_ffi</span>::<span class="ident">g_closure_set_meta_marshal</span>(<span class="ident">closure</span>, <span class="ident">ptr</span>, <span class="prelude-val">Some</span>(<span class="ident">marshal</span>::<span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>));
<span class="ident">gobject_ffi</span>::<span class="ident">g_closure_add_finalize_notifier</span>(<span class="ident">closure</span>, <span class="ident">ptr</span>, <span class="prelude-val">Some</span>(<span class="ident">finalize</span>::<span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>));
<span class="ident">from_glib_none</span>(<span class="ident">closure</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">invoke</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">values</span>: <span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span><span class="ident">ToValue</span>]) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Value</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">result</span> <span class="op">=</span> <span class="kw">unsafe</span> { <span class="ident">Value</span>::<span class="ident">uninitialized</span>() };
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">values</span>: <span class="ident">Vec</span><span class="op">&lt;</span>_<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">values</span>.<span class="ident">iter</span>()
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">v</span><span class="op">|</span> <span class="ident">v</span>.<span class="ident">to_value</span>())
.<span class="ident">collect</span>();
<span class="kw">let</span> <span class="ident">gvalues</span> <span class="op">=</span> <span class="ident">values</span>.<span class="ident">as_mut_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _;
<span class="kw">unsafe</span> {
<span class="ident">gobject_ffi</span>::<span class="ident">g_closure_invoke</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _, <span class="ident">result</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>,
<span class="ident">values</span>.<span class="ident">len</span>() <span class="kw">as</span> <span class="ident">u32</span>, <span class="ident">gvalues</span>, <span class="ident">ptr</span>::<span class="ident">null_mut</span>());
}
<span class="kw">if</span> <span class="ident">result</span>.<span class="ident">type_</span>() <span class="op">==</span> <span class="ident">Type</span>::<span class="ident">Invalid</span> {
<span class="prelude-val">None</span>
} <span class="kw">else</span> {
<span class="prelude-val">Some</span>(<span class="ident">result</span>)
}
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">sync</span>::<span class="ident">Arc</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">sync</span>::<span class="ident">atomic</span>::{<span class="ident">AtomicUsize</span>, <span class="ident">Ordering</span>};
<span class="kw">use</span> <span class="kw">super</span>::<span class="ident">Closure</span>;
<span class="kw">use</span> <span class="ident">ToValue</span>;
<span class="kw">use</span> <span class="ident">Value</span>;
<span class="kw">fn</span> <span class="ident">closure_fn</span>(<span class="ident">values</span>: <span class="kw-2">&amp;</span>[<span class="ident">Value</span>]) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Value</span><span class="op">&gt;</span> {
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">values</span>.<span class="ident">len</span>(), <span class="number">2</span>);
<span class="kw">let</span> <span class="ident">string</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">values</span>[<span class="number">0</span>].<span class="ident">get</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">string</span>, <span class="prelude-val">Some</span>(<span class="string">&quot;test&quot;</span>.<span class="ident">to_string</span>()));
<span class="kw">let</span> <span class="ident">int</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">i32</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">values</span>[<span class="number">1</span>].<span class="ident">get</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">int</span>, <span class="prelude-val">Some</span>(<span class="number">42</span>));
<span class="prelude-val">Some</span>(<span class="number">24</span>.<span class="ident">to_value</span>())
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_closure</span>() {
<span class="kw">let</span> <span class="ident">call_count</span> <span class="op">=</span> <span class="ident">Arc</span>::<span class="ident">new</span>(<span class="ident">AtomicUsize</span>::<span class="ident">new</span>(<span class="number">0</span>));
<span class="kw">let</span> <span class="ident">count</span> <span class="op">=</span> <span class="ident">call_count</span>.<span class="ident">clone</span>();
<span class="kw">let</span> <span class="ident">closure</span> <span class="op">=</span> <span class="ident">Closure</span>::<span class="ident">new</span>(<span class="kw">move</span> <span class="op">|</span><span class="ident">values</span><span class="op">|</span> {
<span class="ident">count</span>.<span class="ident">fetch_add</span>(<span class="number">1</span>, <span class="ident">Ordering</span>::<span class="ident">Relaxed</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">values</span>.<span class="ident">len</span>(), <span class="number">2</span>);
<span class="kw">let</span> <span class="ident">string</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">values</span>[<span class="number">0</span>].<span class="ident">get</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">string</span>, <span class="prelude-val">Some</span>(<span class="string">&quot;test&quot;</span>.<span class="ident">to_string</span>()));
<span class="kw">let</span> <span class="ident">int</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">i32</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">values</span>[<span class="number">1</span>].<span class="ident">get</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">int</span>, <span class="prelude-val">Some</span>(<span class="number">42</span>));
<span class="prelude-val">None</span>
});
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">closure</span>.<span class="ident">invoke</span>(<span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span><span class="string">&quot;test&quot;</span>.<span class="ident">to_string</span>(), <span class="kw-2">&amp;</span><span class="number">42</span>]);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">result</span>.<span class="ident">is_none</span>());
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">call_count</span>.<span class="ident">load</span>(<span class="ident">Ordering</span>::<span class="ident">Relaxed</span>), <span class="number">1</span>);
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">closure</span>.<span class="ident">invoke</span>(<span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span><span class="string">&quot;test&quot;</span>.<span class="ident">to_string</span>(), <span class="kw-2">&amp;</span><span class="number">42</span>]);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">result</span>.<span class="ident">is_none</span>());
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">call_count</span>.<span class="ident">load</span>(<span class="ident">Ordering</span>::<span class="ident">Relaxed</span>), <span class="number">2</span>);
<span class="kw">let</span> <span class="ident">closure</span> <span class="op">=</span> <span class="ident">Closure</span>::<span class="ident">new</span>(<span class="ident">closure_fn</span>);
<span class="kw">let</span> <span class="ident">result</span> <span class="op">=</span> <span class="ident">closure</span>.<span class="ident">invoke</span>(<span class="kw-2">&amp;</span>[<span class="kw-2">&amp;</span><span class="string">&quot;test&quot;</span>.<span class="ident">to_string</span>(), <span class="kw-2">&amp;</span><span class="number">42</span>]);
<span class="kw">let</span> <span class="ident">int</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">i32</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">result</span>.<span class="ident">and_then</span>(<span class="op">|</span><span class="ident">result</span><span class="op">|</span> <span class="ident">result</span>.<span class="ident">get</span>());
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">int</span>, <span class="prelude-val">Some</span>(<span class="number">24</span>));
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

784
src/glib/date.rs.html Normal file
View File

@@ -0,0 +1,784 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/date.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>date.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2017, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">DateDay</span>;
<span class="kw">use</span> <span class="ident">DateMonth</span>;
<span class="kw">use</span> <span class="ident">DateWeekday</span>;
<span class="kw">use</span> <span class="ident">DateYear</span>;
<span class="kw">use</span> <span class="ident">Time</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">libc</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cmp</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Date</span>(<span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">GDate</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">copy</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">gobject_ffi</span>::<span class="ident">g_boxed_copy</span>(<span class="ident">ffi</span>::<span class="ident">g_date_get_type</span>(), <span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _,
<span class="ident">free</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">ffi</span>::<span class="ident">g_date_free</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">g_date_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">Date</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-&gt;</span> <span class="ident">Date</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_new</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_dmy</span>(<span class="ident">day</span>: <span class="ident">DateDay</span>, <span class="ident">month</span>: <span class="ident">DateMonth</span>, <span class="ident">year</span>: <span class="ident">DateYear</span>) <span class="op">-&gt;</span> <span class="ident">Date</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_new_dmy</span>(<span class="ident">day</span>, <span class="ident">month</span>.<span class="ident">to_glib</span>(), <span class="ident">year</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new_julian</span>(<span class="ident">julian_day</span>: <span class="ident">u32</span>) <span class="op">-&gt;</span> <span class="ident">Date</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">g_date_new_julian</span>(<span class="ident">julian_day</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_days</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">n_days</span>: <span class="ident">u32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_add_days</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">n_days</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_months</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">n_months</span>: <span class="ident">u32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_add_months</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">n_months</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">add_years</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">n_years</span>: <span class="ident">u32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_add_years</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">n_years</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">clamp</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">min_date</span>: <span class="kw-2">&amp;</span><span class="ident">Date</span>, <span class="ident">max_date</span>: <span class="kw-2">&amp;</span><span class="ident">Date</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_clamp</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">min_date</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">max_date</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">clear</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">n_dates</span>: <span class="ident">u32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_clear</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">n_dates</span>);
}
}
<span class="kw">fn</span> <span class="ident">compare</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">rhs</span>: <span class="kw-2">&amp;</span><span class="ident">Date</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_compare</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">rhs</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">days_between</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">date2</span>: <span class="kw-2">&amp;</span><span class="ident">Date</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_days_between</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">date2</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_day</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">DateDay</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_get_day</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_day_of_year</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">u32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_get_day_of_year</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_iso8601_week_of_year</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">u32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_get_iso8601_week_of_year</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_julian</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">u32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_get_julian</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_monday_week_of_year</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">u32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_get_monday_week_of_year</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_month</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">DateMonth</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_get_month</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_sunday_week_of_year</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">u32</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_get_sunday_week_of_year</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_weekday</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">DateWeekday</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_get_weekday</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_year</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">DateYear</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_get_year</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_first_of_month</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_is_first_of_month</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_last_of_month</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_is_last_of_month</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">order</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">date2</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">Date</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_order</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">date2</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_day</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">day</span>: <span class="ident">DateDay</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_set_day</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">day</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_dmy</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">day</span>: <span class="ident">DateDay</span>, <span class="ident">month</span>: <span class="ident">DateMonth</span>, <span class="ident">y</span>: <span class="ident">DateYear</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_set_dmy</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">day</span>, <span class="ident">month</span>.<span class="ident">to_glib</span>(), <span class="ident">y</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_julian</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">julian_date</span>: <span class="ident">u32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_set_julian</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">julian_date</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_month</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">month</span>: <span class="ident">DateMonth</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_set_month</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">month</span>.<span class="ident">to_glib</span>());
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_parse</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">str</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_set_parse</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">str</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_time</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">time_</span>: <span class="ident">Time</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_set_time</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">time_</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_time_t</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">timet</span>: <span class="ident">libc</span>::<span class="ident">c_long</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_set_time_t</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">timet</span>);
}
}
<span class="comment">//pub fn set_time_val(&amp;mut self, timeval: /*Ignored*/&amp;mut TimeVal) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_date_set_time_val() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_year</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">year</span>: <span class="ident">DateYear</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_set_year</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">year</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">subtract_days</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">n_days</span>: <span class="ident">u32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_subtract_days</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">n_days</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">subtract_months</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">n_months</span>: <span class="ident">u32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_subtract_months</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">n_months</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">subtract_years</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">n_years</span>: <span class="ident">u32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_subtract_years</span>(<span class="self">self</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="ident">n_years</span>);
}
}
<span class="comment">//pub fn to_struct_tm(&amp;self, tm: /*Unimplemented*/Fundamental: Pointer) {</span>
<span class="comment">// unsafe { TODO: call ffi::g_date_to_struct_tm() }</span>
<span class="comment">//}</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">valid</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_valid</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_days_in_month</span>(<span class="ident">month</span>: <span class="ident">DateMonth</span>, <span class="ident">year</span>: <span class="ident">DateYear</span>) <span class="op">-&gt;</span> <span class="ident">u8</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_get_days_in_month</span>(<span class="ident">month</span>.<span class="ident">to_glib</span>(), <span class="ident">year</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_monday_weeks_in_year</span>(<span class="ident">year</span>: <span class="ident">DateYear</span>) <span class="op">-&gt;</span> <span class="ident">u8</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_get_monday_weeks_in_year</span>(<span class="ident">year</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_sunday_weeks_in_year</span>(<span class="ident">year</span>: <span class="ident">DateYear</span>) <span class="op">-&gt;</span> <span class="ident">u8</span> {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_get_sunday_weeks_in_year</span>(<span class="ident">year</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_leap_year</span>(<span class="ident">year</span>: <span class="ident">DateYear</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_is_leap_year</span>(<span class="ident">year</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strftime</span>(<span class="ident">s</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">format</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">date</span>: <span class="kw-2">&amp;</span><span class="ident">Date</span>) <span class="op">-&gt;</span> <span class="ident">usize</span> {
<span class="kw">let</span> <span class="ident">slen</span> <span class="op">=</span> <span class="ident">s</span>.<span class="ident">len</span>() <span class="kw">as</span> <span class="ident">usize</span>;
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_date_strftime</span>(<span class="ident">s</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">slen</span>, <span class="ident">format</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">date</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">valid_day</span>(<span class="ident">day</span>: <span class="ident">DateDay</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_valid_day</span>(<span class="ident">day</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">valid_dmy</span>(<span class="ident">day</span>: <span class="ident">DateDay</span>, <span class="ident">month</span>: <span class="ident">DateMonth</span>, <span class="ident">year</span>: <span class="ident">DateYear</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_valid_dmy</span>(<span class="ident">day</span>, <span class="ident">month</span>.<span class="ident">to_glib</span>(), <span class="ident">year</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">valid_julian</span>(<span class="ident">julian_date</span>: <span class="ident">u32</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_valid_julian</span>(<span class="ident">julian_date</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">valid_month</span>(<span class="ident">month</span>: <span class="ident">DateMonth</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_valid_month</span>(<span class="ident">month</span>.<span class="ident">to_glib</span>()))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">valid_weekday</span>(<span class="ident">weekday</span>: <span class="ident">DateWeekday</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_valid_weekday</span>(<span class="ident">weekday</span>.<span class="ident">to_glib</span>()))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">valid_year</span>(<span class="ident">year</span>: <span class="ident">DateYear</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_valid_year</span>(<span class="ident">year</span>))
}
}
}
<span class="kw">impl</span> <span class="ident">Default</span> <span class="kw">for</span> <span class="ident">Date</span> {
<span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="self">Self</span>::<span class="ident">new</span>()
}
}
<span class="kw">impl</span> <span class="ident">PartialEq</span> <span class="kw">for</span> <span class="ident">Date</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="self">self</span>.<span class="ident">compare</span>(<span class="ident">other</span>) <span class="op">==</span> <span class="number">0</span>
}
}
<span class="kw">impl</span> <span class="ident">Eq</span> <span class="kw">for</span> <span class="ident">Date</span> {}
<span class="kw">impl</span> <span class="ident">PartialOrd</span> <span class="kw">for</span> <span class="ident">Date</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">partial_cmp</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">cmp</span>::<span class="ident">Ordering</span><span class="op">&gt;</span> {
<span class="self">self</span>.<span class="ident">compare</span>(<span class="ident">other</span>).<span class="ident">partial_cmp</span>(<span class="kw-2">&amp;</span><span class="number">0</span>)
}
}
<span class="kw">impl</span> <span class="ident">Ord</span> <span class="kw">for</span> <span class="ident">Date</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">cmp</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">cmp</span>::<span class="ident">Ordering</span> {
<span class="self">self</span>.<span class="ident">compare</span>(<span class="ident">other</span>).<span class="ident">cmp</span>(<span class="kw-2">&amp;</span><span class="number">0</span>)
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

136
src/glib/date_time.rs.html Normal file
View File

@@ -0,0 +1,136 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/date_time.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>date_time.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">DateTime</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">impl</span> <span class="ident">DateTime</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">compare</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">unsafe</span> {<span class="ident">ffi</span>::<span class="ident">g_date_time_compare</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _, <span class="ident">other</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _) }
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">equal</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_date_time_equal</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _, <span class="ident">other</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _)) }
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

1496
src/glib/enums.rs.html Normal file

File diff suppressed because it is too large Load Diff

406
src/glib/error.rs.html Normal file
View File

@@ -0,0 +1,406 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/error.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>error.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="doccomment">//! `Error` binding and helper trait.</span>
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ffi</span>::<span class="ident">CStr</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">error</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fmt</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">str</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="doccomment">/// A generic error capable of representing various error domains (types).</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Error</span>(<span class="ident">Boxed</span><span class="op">&lt;</span><span class="ident">glib_ffi</span>::<span class="ident">GError</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">copy</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">glib_ffi</span>::<span class="ident">g_error_copy</span>(<span class="ident">ptr</span>),
<span class="ident">free</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">glib_ffi</span>::<span class="ident">g_error_free</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">glib_ffi</span>::<span class="ident">g_error_get_type</span>(),
}
}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Send</span> <span class="kw">for</span> <span class="ident">Error</span> {}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">Error</span> {}
<span class="kw">impl</span> <span class="ident">Error</span> {
<span class="doccomment">/// Creates an error with supplied error enum variant and message.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">ErrorDomain</span><span class="op">&gt;</span>(<span class="ident">error</span>: <span class="ident">T</span>, <span class="ident">message</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="ident">Error</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(
<span class="ident">glib_ffi</span>::<span class="ident">g_error_new_literal</span>(<span class="ident">T</span>::<span class="ident">domain</span>(), <span class="ident">error</span>.<span class="ident">code</span>(), <span class="ident">message</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="doccomment">/// Checks if the error domain matches `T`.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">ErrorDomain</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="self">self</span>.<span class="number">0</span>.<span class="ident">domain</span> <span class="op">==</span> <span class="ident">T</span>::<span class="ident">domain</span>()
}
<span class="doccomment">/// Tries to convert to a specific error enum.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Returns `Some` if the error belongs to the enum&#39;s error domain and</span>
<span class="doccomment">/// `None` otherwise.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Examples</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```ignore</span>
<span class="doccomment">/// if let Some(file_error) = error.kind::&lt;FileError&gt;() {</span>
<span class="doccomment">/// match file_error {</span>
<span class="doccomment">/// FileError::Exist =&gt; ...</span>
<span class="doccomment">/// FileError::Isdir =&gt; ...</span>
<span class="doccomment">/// ...</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// ```</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```ignore</span>
<span class="doccomment">/// match error {</span>
<span class="doccomment">/// Some(FileError::Exist) =&gt; ...</span>
<span class="doccomment">/// Some(FileError::Isdir) =&gt; ...</span>
<span class="doccomment">/// ...</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// ```</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">kind</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">ErrorDomain</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="kw">if</span> <span class="self">self</span>.<span class="number">0</span>.<span class="ident">domain</span> <span class="op">==</span> <span class="ident">T</span>::<span class="ident">domain</span>() {
<span class="ident">T</span>::<span class="ident">from</span>(<span class="self">self</span>.<span class="number">0</span>.<span class="ident">code</span>)
}
<span class="kw">else</span> {
<span class="prelude-val">None</span>
}
}
<span class="kw">fn</span> <span class="ident">message</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">str</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">bytes</span> <span class="op">=</span> <span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="self">self</span>.<span class="number">0</span>.<span class="ident">message</span>).<span class="ident">to_bytes</span>();
<span class="ident">str</span>::<span class="ident">from_utf8</span>(<span class="ident">bytes</span>).<span class="ident">unwrap_or_else</span>(<span class="op">|</span><span class="ident">err</span><span class="op">|</span> {
<span class="ident">str</span>::<span class="ident">from_utf8</span>(<span class="kw-2">&amp;</span><span class="ident">bytes</span>[..<span class="ident">err</span>.<span class="ident">valid_up_to</span>()]).<span class="ident">unwrap</span>()
})
}
}
<span class="comment">// backcompat shim</span>
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">not_unsafe_ptr_arg_deref</span>))]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">wrap</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib_ffi</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">Error</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_full</span>(<span class="ident">ptr</span>) }
}
}
<span class="kw">impl</span> <span class="ident">fmt</span>::<span class="ident">Display</span> <span class="kw">for</span> <span class="ident">Error</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="macro">write</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot;{}&quot;</span>, <span class="self">self</span>.<span class="ident">message</span>())
}
}
<span class="kw">impl</span> <span class="ident">error</span>::<span class="ident">Error</span> <span class="kw">for</span> <span class="ident">Error</span> {
<span class="kw">fn</span> <span class="ident">description</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">str</span> {
<span class="self">self</span>.<span class="ident">message</span>()
}
}
<span class="doccomment">/// `GLib` error domain.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// This trait is implemented by error enums that represent error domains (types).</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">ErrorDomain</span>: <span class="ident">Copy</span> {
<span class="doccomment">/// Returns the quark identifying the error domain.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// As returned from `g_some_error_quark`.</span>
<span class="kw">fn</span> <span class="ident">domain</span>() <span class="op">-&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">GQuark</span>;
<span class="doccomment">/// Gets the integer representation of the variant.</span>
<span class="kw">fn</span> <span class="ident">code</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span>;
<span class="doccomment">/// Tries to convert an integer code to an enum variant.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// By convention, the `Failed` variant, if present, is a catch-all,</span>
<span class="doccomment">/// i.e. any unrecognized codes map to it.</span>
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">code</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> <span class="kw">where</span> <span class="self">Self</span>: <span class="ident">Sized</span>;
}
<span class="doccomment">/// Generic error used for functions that fail without any further information</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">BoolError</span>(<span class="kw">pub</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>);
<span class="kw">impl</span> <span class="ident">BoolError</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">b</span>: <span class="ident">glib_ffi</span>::<span class="ident">gboolean</span>, <span class="ident">s</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">match</span> <span class="ident">b</span> {
<span class="ident">glib_ffi</span>::<span class="ident">GFALSE</span> <span class="op">=&gt;</span> <span class="prelude-val">Err</span>(<span class="ident">BoolError</span>(<span class="ident">s</span>)),
_ <span class="op">=&gt;</span> <span class="prelude-val">Ok</span>(()),
}
}
}
<span class="kw">impl</span> <span class="ident">fmt</span>::<span class="ident">Display</span> <span class="kw">for</span> <span class="ident">BoolError</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="macro">write</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot;{}&quot;</span>, <span class="self">self</span>.<span class="number">0</span>)
}
}
<span class="kw">impl</span> <span class="ident">error</span>::<span class="ident">Error</span> <span class="kw">for</span> <span class="ident">BoolError</span> {
<span class="kw">fn</span> <span class="ident">description</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">str</span> {
<span class="self">self</span>.<span class="number">0</span>
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

320
src/glib/file_error.rs.html Normal file
View File

@@ -0,0 +1,320 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/file_error.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>file_error.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">error</span>::<span class="ident">ErrorDomain</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">PartialEq</span>, <span class="ident">Eq</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">FileError</span> {
<span class="ident">Exist</span>,
<span class="ident">Isdir</span>,
<span class="ident">Acces</span>,
<span class="ident">Nametoolong</span>,
<span class="ident">Noent</span>,
<span class="ident">Notdir</span>,
<span class="ident">Nxio</span>,
<span class="ident">Nodev</span>,
<span class="ident">Rofs</span>,
<span class="ident">Txtbsy</span>,
<span class="ident">Fault</span>,
<span class="ident">Loop</span>,
<span class="ident">Nospc</span>,
<span class="ident">Nomem</span>,
<span class="ident">Mfile</span>,
<span class="ident">Nfile</span>,
<span class="ident">Badf</span>,
<span class="ident">Inval</span>,
<span class="ident">Pipe</span>,
<span class="ident">Again</span>,
<span class="ident">Intr</span>,
<span class="ident">Io</span>,
<span class="ident">Perm</span>,
<span class="ident">Nosys</span>,
<span class="ident">Failed</span>,
}
<span class="kw">impl</span> <span class="ident">ErrorDomain</span> <span class="kw">for</span> <span class="ident">FileError</span> {
<span class="kw">fn</span> <span class="ident">domain</span>() <span class="op">-&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">GQuark</span> {
<span class="kw">unsafe</span> { <span class="ident">glib_ffi</span>::<span class="ident">g_file_error_quark</span>() }
}
<span class="kw">fn</span> <span class="ident">code</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">FileError</span>::<span class="kw-2">*</span>;
<span class="kw">match</span> <span class="self">self</span> {
<span class="ident">Exist</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_EXIST</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Isdir</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_ISDIR</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Acces</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_ACCES</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Nametoolong</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NAMETOOLONG</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Noent</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NOENT</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Notdir</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NOTDIR</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Nxio</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NXIO</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Nodev</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NODEV</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Rofs</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_ROFS</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Txtbsy</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_TXTBSY</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Fault</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_FAULT</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Loop</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_LOOP</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Nospc</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NOSPC</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Nomem</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NOMEM</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Mfile</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_MFILE</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Nfile</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NFILE</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Badf</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_BADF</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Inval</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_INVAL</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Pipe</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_PIPE</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Again</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_AGAIN</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Intr</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_INTR</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Io</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_IO</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Perm</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_PERM</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Nosys</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NOSYS</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="ident">Failed</span> <span class="op">=&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_FAILED</span> <span class="kw">as</span> <span class="ident">i32</span>,
}
}
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">cyclomatic_complexity</span>))]</span>
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">code</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">FileError</span>::<span class="kw-2">*</span>;
<span class="kw">match</span> <span class="ident">code</span> {
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_EXIST</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Exist</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_ISDIR</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Isdir</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_ACCES</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Acces</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NAMETOOLONG</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Nametoolong</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NOENT</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Noent</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NOTDIR</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Notdir</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NXIO</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Nxio</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NODEV</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Nodev</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_ROFS</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Rofs</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_TXTBSY</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Txtbsy</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_FAULT</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Fault</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_LOOP</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Loop</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NOSPC</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Nospc</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NOMEM</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Nomem</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_MFILE</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Mfile</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NFILE</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Nfile</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_BADF</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Badf</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_INVAL</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Inval</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_PIPE</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Pipe</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_AGAIN</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Again</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_INTR</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Intr</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_IO</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Io</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_PERM</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Perm</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_NOSYS</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Nosys</span>),
<span class="ident">x</span> <span class="kw">if</span> <span class="ident">x</span> <span class="op">==</span> <span class="ident">glib_ffi</span>::<span class="ident">G_FILE_ERROR_FAILED</span> <span class="kw">as</span> <span class="ident">i32</span> <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Failed</span>),
_ <span class="op">=&gt;</span> <span class="prelude-val">Some</span>(<span class="ident">Failed</span>),
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

244
src/glib/key_file.rs.html Normal file
View File

@@ -0,0 +1,244 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/key_file.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>key_file.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2015-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">libc</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">std</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">path</span>;
<span class="kw">use</span> <span class="ident">error</span>::<span class="ident">Error</span>;
<span class="kw">use</span> <span class="ident">auto</span>::<span class="ident">KeyFileFlags</span>;
<span class="kw">use</span> <span class="ident">KeyFile</span>;
<span class="kw">impl</span> <span class="ident">KeyFile</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_40&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">save_to_file</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">Path</span><span class="op">&gt;&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">filename</span>: <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_save_to_file</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">filename</span>.<span class="ident">as_ref</span>().<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="prelude-val">Ok</span>(())
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">load_from_data_dirs</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">Path</span><span class="op">&gt;&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">file</span>: <span class="ident">T</span>, <span class="ident">flags</span>: <span class="ident">KeyFileFlags</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">path</span>::<span class="ident">PathBuf</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">full_path</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">libc</span>::<span class="ident">c_char</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_load_from_data_dirs</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">file</span>.<span class="ident">as_ref</span>().<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">full_path</span>,
<span class="ident">flags</span>.<span class="ident">to_glib</span>(), <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="kw">let</span> <span class="ident">path</span>: <span class="ident">String</span> <span class="op">=</span> <span class="ident">from_glib_full</span>(<span class="ident">full_path</span>);
<span class="prelude-val">Ok</span>(<span class="ident">path</span>::<span class="ident">PathBuf</span>::<span class="ident">from</span>(<span class="ident">path</span>))
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">load_from_dirs</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">Path</span><span class="op">&gt;</span>, <span class="ident">U</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">Path</span><span class="op">&gt;&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">file</span>: <span class="ident">T</span>, <span class="ident">search_dirs</span>: <span class="kw-2">&amp;</span>[<span class="ident">U</span>],
<span class="ident">flags</span>: <span class="ident">KeyFileFlags</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">path</span>::<span class="ident">PathBuf</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">search_dirs</span>: <span class="ident">Vec</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">Path</span><span class="op">&gt;</span> <span class="op">=</span> <span class="ident">search_dirs</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">p</span><span class="op">|</span> <span class="ident">p</span>.<span class="ident">as_ref</span>()).<span class="ident">collect</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">full_path</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">libc</span>::<span class="ident">c_char</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> _ <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">g_key_file_load_from_dirs</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">file</span>.<span class="ident">as_ref</span>().<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">search_dirs</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">full_path</span>,
<span class="ident">flags</span>.<span class="ident">to_glib</span>(), <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() {
<span class="kw">let</span> <span class="ident">path</span>: <span class="ident">String</span> <span class="op">=</span> <span class="ident">from_glib_full</span>(<span class="ident">full_path</span>);
<span class="prelude-val">Ok</span>(<span class="ident">path</span>::<span class="ident">PathBuf</span>::<span class="ident">from</span>(<span class="ident">path</span>))
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>))
}
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

516
src/glib/lib.rs.html Normal file
View File

@@ -0,0 +1,516 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/lib.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>lib.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="doccomment">//! # **glib**, **gobject** and **gio** bindings for Rust</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! This library contains</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! - bindings to some essential GLib, GObject, GIO types and APIs,</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! - common building blocks used in both handmade and machine generated</span>
<span class="doccomment">//! bindings to GTK+ and other GLib-based libraries.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! It is the foundation for higher level libraries with uniform Rusty (safe and</span>
<span class="doccomment">//! strongly typed) APIs. It avoids exposing GLib-specific data types where</span>
<span class="doccomment">//! possible and is not meant to provide comprehensive GLib bindings, which</span>
<span class="doccomment">//! would often amount to duplicating the Rust Standard Library or other utility</span>
<span class="doccomment">//! crates.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! The library is a work in progress: expect missing functionality and breaking</span>
<span class="doccomment">//! changes.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! # Dynamic typing</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! Most types in the GLib family have type identifiers</span>
<span class="doccomment">//! ([`Type`](types/enum.Type.html)). Their corresponding Rust types implement</span>
<span class="doccomment">//! the [`StaticType`](types/trait.StaticType.html) trait.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! Dynamically typed [`Value`](value/index.html) can carry values of any `T:</span>
<span class="doccomment">//! StaticType`.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! [`Variant`](variant/index.html) can carry values of `T: StaticVariantType`.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! # Errors</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! Errors are represented by [`Error`](error/struct.Error.html), which can</span>
<span class="doccomment">//! carry values from various [error</span>
<span class="doccomment">//! domains](error/trait.ErrorDomain.html#implementors) (such as</span>
<span class="doccomment">//! [`FileError`](enum.FileError.html)).</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! # Objects</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! Each class and interface has a corresponding smart pointer struct</span>
<span class="doccomment">//! representing an instance of that type (e.g. `Object` for `GObject`,</span>
<span class="doccomment">//! `gtk::Widget` for `GtkWidget`). They are reference counted and feature</span>
<span class="doccomment">//! interior mutability similarly to Rust&#39;s `Rc&lt;RefCell&lt;T&gt;&gt;` idiom.</span>
<span class="doccomment">//! Consequently, cloning objects is cheap and their methods never require</span>
<span class="doccomment">//! mutable borrows. Two smart pointers are equal iff they point to the same</span>
<span class="doccomment">//! object.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! The root of the object hierarchy is [`Object`](object/struct.Object.html).</span>
<span class="doccomment">//! Inheritance and subtyping is denoted with the [`IsA`](object/trait.IsA.html)</span>
<span class="doccomment">//! marker trait. The [`Cast`](object/trait.Cast.html) trait enables upcasting</span>
<span class="doccomment">//! and downcasting.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! Interfaces and non-leaf classes also have corresponding traits (e.g.</span>
<span class="doccomment">//! `ObjectExt` and `gtk::WidgetExt`), which are blanketly implemented for all</span>
<span class="doccomment">//! their subtypes.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! # Under the hood</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! GLib-based libraries largely operate on pointers to various boxed or</span>
<span class="doccomment">//! reference counted structures so the bindings have to implement corresponding</span>
<span class="doccomment">//! smart pointers (wrappers), which encapsulate resource management and safety</span>
<span class="doccomment">//! checks. Such wrappers are defined via the</span>
<span class="doccomment">//! [`glib_wrapper!`](macro.glib_wrapper!.html) macro, which uses abstractions</span>
<span class="doccomment">//! defined in the [`wrapper`](wrapper/index.html), [`boxed`](boxed/index.html),</span>
<span class="doccomment">//! [`shared`](shared/index.html) and [`object`](object/index.html) modules.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! The [`translate`](translate/index.html) module defines and partly implements</span>
<span class="doccomment">//! conversions between high level Rust types (including the aforementioned</span>
<span class="doccomment">//! wrappers) and their FFI counterparts.</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">doc_markdown</span>))]</span>
<span class="attribute">#[<span class="ident">macro_use</span>]</span>
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">bitflags</span>;
<span class="attribute">#[<span class="ident">macro_use</span>]</span>
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">lazy_static</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">libc</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">glib_sys</span> <span class="kw">as</span> <span class="ident">ffi</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">gobject_sys</span> <span class="kw">as</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ffi</span>::<span class="ident">CStr</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">bytes</span>::<span class="ident">Bytes</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">closure</span>::<span class="ident">Closure</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">error</span>::{<span class="ident">Error</span>, <span class="ident">BoolError</span>};
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">file_error</span>::<span class="ident">FileError</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">object</span>::{
<span class="ident">Cast</span>,
<span class="ident">IsA</span>,
<span class="ident">Object</span>,
<span class="ident">ObjectExt</span>,
<span class="ident">WeakRef</span>,
};
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">signal</span>::{
<span class="ident">signal_handler_block</span>,
<span class="ident">signal_handler_unblock</span>,
<span class="ident">signal_stop_emission</span>,
<span class="ident">signal_stop_emission_by_name</span>
};
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">types</span>::{
<span class="ident">StaticType</span>,
<span class="ident">Type</span>,
};
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">value</span>::{
<span class="ident">ToValue</span>,
<span class="ident">TypedValue</span>,
<span class="ident">Value</span>,
};
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">variant</span>::{
<span class="ident">StaticVariantType</span>,
<span class="ident">ToVariant</span>,
<span class="ident">Variant</span>,
};
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">variant_type</span>::{
<span class="ident">VariantTy</span>,
<span class="ident">VariantType</span>,
};
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">time_val</span>::{
<span class="ident">TimeVal</span>,
<span class="ident">get_current_time</span>,
};
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">enums</span>::{
<span class="ident">UserDirectory</span>,
<span class="ident">EnumClass</span>,
<span class="ident">EnumValue</span>,
<span class="ident">FlagsClass</span>,
<span class="ident">FlagsValue</span>,
<span class="ident">FlagsBuilder</span>,
};
<span class="macro">lazy_static</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_GROUP</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_GROUP</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_ACTIONS</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_ACTIONS</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_CATEGORIES</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_CATEGORIES</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_COMMENT</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_COMMENT</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_DBUS_ACTIVATABLE</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_EXEC</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_EXEC</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_FULLNAME</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_FULLNAME</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_GENERIC_NAME</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_GENERIC_NAME</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_GETTEXT_DOMAIN</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_HIDDEN</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_HIDDEN</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_ICON</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_ICON</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_KEYWORDS</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_KEYWORDS</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_MIME_TYPE</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_MIME_TYPE</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_NAME</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_NAME</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_NOT_SHOW_IN</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_NO_DISPLAY</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_NO_DISPLAY</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_ONLY_SHOW_IN</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_PATH</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_PATH</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_STARTUP_NOTIFY</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_STARTUP_WM_CLASS</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_TERMINAL</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_TERMINAL</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_TRY_EXEC</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_TRY_EXEC</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_TYPE</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_TYPE</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_URL</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_URL</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_KEY_VERSION</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_KEY_VERSION</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_TYPE_APPLICATION</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_TYPE_APPLICATION</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_TYPE_DIRECTORY</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_TYPE_DIRECTORY</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
<span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="ident">KEY_FILE_DESKTOP_TYPE_LINK</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="ident">str</span> <span class="op">=</span> <span class="kw">unsafe</span>{<span class="ident">CStr</span>::<span class="ident">from_ptr</span>(<span class="ident">ffi</span>::<span class="ident">G_KEY_FILE_DESKTOP_TYPE_LINK</span>).<span class="ident">to_str</span>().<span class="ident">unwrap</span>()};
}
<span class="attribute">#[<span class="ident">macro_use</span>]</span>
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">wrapper</span>;
<span class="attribute">#[<span class="ident">macro_use</span>]</span>
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">boxed</span>;
<span class="attribute">#[<span class="ident">macro_use</span>]</span>
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">shared</span>;
<span class="attribute">#[<span class="ident">macro_use</span>]</span>
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">object</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">auto</span>::<span class="kw-2">*</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">auto</span>::<span class="ident">functions</span>::<span class="kw-2">*</span>;
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">let_and_return</span>))]</span>
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">let_unit_value</span>))]</span>
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">too_many_arguments</span>))]</span>
<span class="kw">mod</span> <span class="ident">auto</span>;
<span class="kw">mod</span> <span class="ident">bytes</span>;
<span class="kw">mod</span> <span class="ident">checksum</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">closure</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">error</span>;
<span class="kw">mod</span> <span class="ident">enums</span>;
<span class="kw">mod</span> <span class="ident">file_error</span>;
<span class="kw">mod</span> <span class="ident">key_file</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">prelude</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">signal</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">source</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">source</span>::<span class="kw-2">*</span>;
<span class="kw">mod</span> <span class="ident">time_val</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">translate</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">types</span>;
<span class="kw">mod</span> <span class="ident">utils</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">utils</span>::<span class="kw-2">*</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">value</span>;
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">variant</span>;
<span class="kw">mod</span> <span class="ident">variant_type</span>;
<span class="kw">mod</span> <span class="ident">main_context</span>;
<span class="kw">mod</span> <span class="ident">date_time</span>;
<span class="kw">mod</span> <span class="ident">date</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">date</span>::<span class="ident">Date</span>;
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,256 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/main_context.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>main_context.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
<span id="72">72</span>
<span id="73">73</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2015-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>::<span class="ident">transmute</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span>::{<span class="ident">gpointer</span>, <span class="ident">gboolean</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cell</span>::<span class="ident">RefCell</span>;
<span class="kw">use</span> <span class="ident">MainContext</span>;
<span class="kw">use</span> <span class="ident">Source</span>;
<span class="kw">use</span> <span class="ident">SourceId</span>;
<span class="kw">use</span> <span class="ident">source</span>::{<span class="ident">CallbackGuard</span>, <span class="ident">Priority</span>};
<span class="kw">impl</span> <span class="ident">MainContext</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">prepare</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> (<span class="ident">bool</span>, <span class="ident">i32</span>) {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">priority</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">g_main_context_prepare</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">priority</span>));
(<span class="ident">res</span>, <span class="ident">priority</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">find_source_by_id</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">source_id</span>: <span class="ident">SourceId</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Source</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">g_main_context_find_source_by_id</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">source_id</span>.<span class="ident">to_glib</span>()))
}
}
<span class="comment">// FIXME: These can actually be FnOnce but require FnBox to</span>
<span class="comment">// stabilize, or Box&lt;FnOnce()&gt; to be callable otherwise</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">invoke</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">func</span>: <span class="ident">F</span>)
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="ident">glib_ffi</span>::<span class="ident">g_main_context_invoke_full</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_DEFAULT_IDLE</span>, <span class="prelude-val">Some</span>(<span class="ident">trampoline</span>),
<span class="ident">into_raw</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">invoke_with_priority</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">priority</span>: <span class="ident">Priority</span>, <span class="ident">func</span>: <span class="ident">F</span>)
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="ident">glib_ffi</span>::<span class="ident">g_main_context_invoke_full</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">priority</span>.<span class="ident">to_glib</span>(), <span class="prelude-val">Some</span>(<span class="ident">trampoline</span>),
<span class="ident">into_raw</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>))
}
}
}
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">transmute_ptr_to_ref</span>))]</span>
<span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span> <span class="ident">trampoline</span>(<span class="ident">func</span>: <span class="ident">gpointer</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span> {
<span class="kw">let</span> <span class="ident">_guard</span> <span class="op">=</span> <span class="ident">CallbackGuard</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="ident">func</span>: <span class="kw-2">&amp;</span><span class="ident">RefCell</span><span class="op">&lt;</span><span class="ident">Box</span><span class="op">&lt;</span><span class="ident">FnMut</span>() <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;&gt;</span> <span class="op">=</span> <span class="ident">transmute</span>(<span class="ident">func</span>);
(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="ident">func</span>.<span class="ident">borrow_mut</span>())();
<span class="ident">glib_ffi</span>::<span class="ident">G_SOURCE_REMOVE</span>
}
<span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span> <span class="ident">destroy_closure</span>(<span class="ident">ptr</span>: <span class="ident">gpointer</span>) {
<span class="kw">let</span> <span class="ident">_guard</span> <span class="op">=</span> <span class="ident">CallbackGuard</span>::<span class="ident">new</span>();
<span class="ident">Box</span>::<span class="op">&lt;</span><span class="ident">RefCell</span><span class="op">&lt;</span><span class="ident">Box</span><span class="op">&lt;</span><span class="ident">FnMut</span>() <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>::<span class="ident">from_raw</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _);
}
<span class="kw">fn</span> <span class="ident">into_raw</span><span class="op">&lt;</span><span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;</span>(<span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">gpointer</span> {
<span class="kw">let</span> <span class="ident">func</span>: <span class="ident">Box</span><span class="op">&lt;</span><span class="ident">RefCell</span><span class="op">&lt;</span><span class="ident">Box</span><span class="op">&lt;</span><span class="ident">FnMut</span>() <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span> <span class="op">=</span>
<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">RefCell</span>::<span class="ident">new</span>(<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">func</span>)));
<span class="ident">Box</span>::<span class="ident">into_raw</span>(<span class="ident">func</span>) <span class="kw">as</span> <span class="ident">gpointer</span>
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

1742
src/glib/object.rs.html Normal file

File diff suppressed because it is too large Load Diff

134
src/glib/prelude.rs.html Normal file
View File

@@ -0,0 +1,134 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/prelude.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>prelude.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
</pre><pre class="rust ">
<span class="doccomment">//! Traits and essential types intended for blanket imports.</span>
<span class="kw">pub</span> <span class="kw">use</span> {
<span class="ident">Cast</span>,
<span class="ident">Continue</span>,
<span class="ident">IsA</span>,
<span class="ident">ObjectExt</span>,
<span class="ident">StaticType</span>,
<span class="ident">StaticVariantType</span>,
<span class="ident">ToValue</span>,
<span class="ident">ToVariant</span>,
};
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

836
src/glib/shared.rs.html Normal file
View File

@@ -0,0 +1,836 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/shared.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>shared.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
<span id="340">340</span>
<span id="341">341</span>
<span id="342">342</span>
<span id="343">343</span>
<span id="344">344</span>
<span id="345">345</span>
<span id="346">346</span>
<span id="347">347</span>
<span id="348">348</span>
<span id="349">349</span>
<span id="350">350</span>
<span id="351">351</span>
<span id="352">352</span>
<span id="353">353</span>
<span id="354">354</span>
<span id="355">355</span>
<span id="356">356</span>
<span id="357">357</span>
<span id="358">358</span>
<span id="359">359</span>
<span id="360">360</span>
<span id="361">361</span>
<span id="362">362</span>
<span id="363">363</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2015-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="doccomment">//! `IMPL` Shared (reference counted) wrapper implementation.</span>
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fmt</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">hash</span>::{<span class="ident">Hash</span>, <span class="ident">Hasher</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">marker</span>::<span class="ident">PhantomData</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="doccomment">/// Wrapper implementations for shared types. See `glib_wrapper!`.</span>
<span class="attribute">#[<span class="ident">macro_export</span>]</span>
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">glib_shared_wrapper</span> {
([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span>, @<span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_arg</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_expr</span>:<span class="ident">expr</span>,
@<span class="ident">unref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_arg</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_expr</span>:<span class="ident">expr</span>,
@<span class="ident">get_type</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>:<span class="ident">expr</span>) <span class="op">=&gt;</span> {
<span class="macro">glib_shared_wrapper</span><span class="macro">!</span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, @<span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_expr</span>,
@<span class="ident">unref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_expr</span>);
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">types</span>::<span class="ident">StaticType</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">fn</span> <span class="ident">static_type</span>() <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">types</span>::<span class="ident">Type</span> {
<span class="kw">unsafe</span> { <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>) }
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">value</span>::<span class="ident">FromValueOptional</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_value_optional</span>(<span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Value</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="prelude-ty">Option</span>::<span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span><span class="op">&gt;</span>::<span class="ident">from_glib_full</span>(<span class="ident">gobject_ffi</span>::<span class="ident">g_value_dup_boxed</span>(<span class="ident">value</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>)
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">value</span>::<span class="ident">SetValue</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">set_value</span>(<span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Value</span>, <span class="ident">this</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) {
<span class="ident">gobject_ffi</span>::<span class="ident">g_value_set_boxed</span>(<span class="ident">value</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibPtr</span>::<span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span>::<span class="ident">to_glib_none</span>(<span class="ident">this</span>).<span class="number">0</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>::<span class="ident">gpointer</span>)
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">value</span>::<span class="ident">SetValueOptional</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">set_value_optional</span>(<span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">Value</span>, <span class="ident">this</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="self">Self</span><span class="op">&gt;</span>) {
<span class="ident">gobject_ffi</span>::<span class="ident">g_value_set_boxed</span>(<span class="ident">value</span>.<span class="ident">to_glib_none_mut</span>().<span class="number">0</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibPtr</span>::<span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span>::<span class="ident">to_glib_none</span>(<span class="kw-2">&amp;</span><span class="ident">this</span>).<span class="number">0</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>::<span class="ident">gpointer</span>)
}
}
};
([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span>, @<span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_arg</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_expr</span>:<span class="ident">expr</span>,
@<span class="ident">unref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_arg</span>:<span class="ident">ident</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_expr</span>:<span class="ident">expr</span>) <span class="op">=&gt;</span> {
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>]</span>)<span class="op">*</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">shared</span>::<span class="ident">Shared</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">MemoryManager</span><span class="op">&gt;</span>);
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">MemoryManager</span>;
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">shared</span>::<span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">MemoryManager</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">ref_</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_arg</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_expr</span>;
}
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">unref</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_arg</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_expr</span>
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">GlibPtrDefault</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>;
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibPtr</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">shared</span>::<span class="ident">Shared</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">MemoryManager</span><span class="op">&gt;</span>;
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_none</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">Stash</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">stash</span> <span class="op">=</span> <span class="self">self</span>.<span class="number">0</span>.<span class="ident">to_glib_none</span>();
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">Stash</span>(<span class="ident">stash</span>.<span class="number">0</span>, <span class="ident">stash</span>.<span class="number">1</span>)
}
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_full</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span> {
(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="number">0</span>).<span class="ident">to_glib_full</span>()
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibContainerFromSlice</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> (<span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Stash</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span><span class="op">&gt;&gt;</span>, <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;&gt;</span>);
<span class="kw">fn</span> <span class="ident">to_glib_none_from_slice</span>(<span class="ident">t</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> [<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> (<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span>::<span class="ident">Storage</span>) {
<span class="kw">let</span> <span class="ident">v</span>: <span class="ident">Vec</span><span class="op">&lt;</span>_<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">t</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">s</span><span class="op">|</span> <span class="ident">s</span>.<span class="ident">to_glib_none</span>()).<span class="ident">collect</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">v_ptr</span>: <span class="ident">Vec</span><span class="op">&lt;</span>_<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">v</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">s</span><span class="op">|</span> <span class="ident">s</span>.<span class="number">0</span>).<span class="ident">collect</span>();
<span class="ident">v_ptr</span>.<span class="ident">push</span>(<span class="ident">ptr</span>::<span class="ident">null_mut</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>);
(<span class="ident">v_ptr</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, (<span class="ident">v</span>, <span class="prelude-val">Some</span>(<span class="ident">v_ptr</span>)))
}
<span class="kw">fn</span> <span class="ident">to_glib_container_from_slice</span>(<span class="ident">t</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> [<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> (<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span>::<span class="ident">Storage</span>) {
<span class="kw">let</span> <span class="ident">v</span>: <span class="ident">Vec</span><span class="op">&lt;</span>_<span class="op">&gt;</span> <span class="op">=</span> <span class="ident">t</span>.<span class="ident">iter</span>().<span class="ident">map</span>(<span class="op">|</span><span class="ident">s</span><span class="op">|</span> <span class="ident">s</span>.<span class="ident">to_glib_none</span>()).<span class="ident">collect</span>();
<span class="kw">let</span> <span class="ident">v_ptr</span> <span class="op">=</span> <span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">v_ptr</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_malloc0</span>(<span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span>() <span class="op">*</span> <span class="ident">t</span>.<span class="ident">len</span>() <span class="op">+</span> <span class="number">1</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>;
<span class="kw">for</span> (<span class="ident">i</span>, <span class="ident">s</span>) <span class="kw">in</span> <span class="ident">v</span>.<span class="ident">iter</span>().<span class="ident">enumerate</span>() {
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">v_ptr</span>.<span class="ident">offset</span>(<span class="ident">i</span> <span class="kw">as</span> <span class="ident">isize</span>), <span class="ident">s</span>.<span class="number">0</span>);
}
<span class="ident">v_ptr</span>
};
(<span class="ident">v_ptr</span>, (<span class="ident">v</span>, <span class="prelude-val">None</span>))
}
<span class="kw">fn</span> <span class="ident">to_glib_full_from_slice</span>(<span class="ident">t</span>: <span class="kw-2">&amp;</span>[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">v_ptr</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_malloc0</span>(<span class="ident">mem</span>::<span class="ident">size_of</span>::<span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span>() <span class="op">*</span> <span class="ident">t</span>.<span class="ident">len</span>() <span class="op">+</span> <span class="number">1</span>) <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>;
<span class="kw">for</span> (<span class="ident">i</span>, <span class="ident">s</span>) <span class="kw">in</span> <span class="ident">t</span>.<span class="ident">iter</span>().<span class="ident">enumerate</span>() {
<span class="ident">ptr</span>::<span class="ident">write</span>(<span class="ident">v_ptr</span>.<span class="ident">offset</span>(<span class="ident">i</span> <span class="kw">as</span> <span class="ident">isize</span>), <span class="ident">s</span>.<span class="ident">to_glib_full</span>());
}
<span class="ident">v_ptr</span>
}
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibContainerFromSlice</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> (<span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">Stash</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span><span class="op">&gt;&gt;</span>, <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">Vec</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;&gt;</span>);
<span class="kw">fn</span> <span class="ident">to_glib_none_from_slice</span>(<span class="ident">t</span>: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> [<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> (<span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span>::<span class="ident">Storage</span>) {
<span class="kw">let</span> (<span class="ident">ptr</span>, <span class="ident">stash</span>) <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">ToGlibContainerFromSlice</span>::<span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span>::<span class="ident">to_glib_none_from_slice</span>(<span class="ident">t</span>);
(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">stash</span>)
}
<span class="kw">fn</span> <span class="ident">to_glib_container_from_slice</span>(_: <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> [<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> (<span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="self">Self</span>::<span class="ident">Storage</span>) {
<span class="comment">// Can&#39;t have consumer free a *const pointer</span>
<span class="macro">unimplemented</span><span class="macro">!</span>()
}
<span class="kw">fn</span> <span class="ident">to_glib_full_from_slice</span>(_: <span class="kw-2">&amp;</span>[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>]) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span> {
<span class="comment">// Can&#39;t have consumer free a *const pointer</span>
<span class="macro">unimplemented</span><span class="macro">!</span>()
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibPtrNone</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib_none</span>(<span class="ident">ptr</span>))
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibPtrFull</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>))
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibPtrBorrow</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_borrow</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib_borrow</span>(<span class="ident">ptr</span>))
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none_num_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">num</span>: <span class="ident">usize</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">if</span> <span class="ident">num</span> <span class="op">==</span> <span class="number">0</span> <span class="op">||</span> <span class="ident">ptr</span>.<span class="ident">is_null</span>() {
<span class="kw">return</span> <span class="ident">Vec</span>::<span class="ident">new</span>();
}
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="ident">num</span>);
<span class="kw">for</span> <span class="ident">i</span> <span class="kw">in</span> <span class="number">0</span>..<span class="ident">num</span> {
<span class="ident">res</span>.<span class="ident">push</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib_none</span>(<span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">ptr</span>.<span class="ident">offset</span>(<span class="ident">i</span> <span class="kw">as</span> <span class="ident">isize</span>))));
}
<span class="ident">res</span>
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_container_num_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">num</span>: <span class="ident">usize</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">res</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span>::<span class="ident">from_glib_none_num_as_vec</span>(<span class="ident">ptr</span>, <span class="ident">num</span>);
<span class="ident">glib_ffi</span>::<span class="ident">g_free</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _);
<span class="ident">res</span>
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full_num_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">num</span>: <span class="ident">usize</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">if</span> <span class="ident">num</span> <span class="op">==</span> <span class="number">0</span> <span class="op">||</span> <span class="ident">ptr</span>.<span class="ident">is_null</span>() {
<span class="kw">return</span> <span class="ident">Vec</span>::<span class="ident">new</span>();
}
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">res</span> <span class="op">=</span> <span class="ident">Vec</span>::<span class="ident">with_capacity</span>(<span class="ident">num</span>);
<span class="kw">for</span> <span class="ident">i</span> <span class="kw">in</span> <span class="number">0</span>..<span class="ident">num</span> {
<span class="ident">res</span>.<span class="ident">push</span>(<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">from_glib_full</span>(<span class="ident">ptr</span>::<span class="ident">read</span>(<span class="ident">ptr</span>.<span class="ident">offset</span>(<span class="ident">i</span> <span class="kw">as</span> <span class="ident">isize</span>))));
}
<span class="ident">glib_ffi</span>::<span class="ident">g_free</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _);
<span class="ident">res</span>
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibPtrArrayContainerAsVec</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span>::<span class="ident">from_glib_none_num_as_vec</span>(<span class="ident">ptr</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">c_ptr_array_len</span>(<span class="ident">ptr</span>))
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_container_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span>::<span class="ident">from_glib_container_num_as_vec</span>(<span class="ident">ptr</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">c_ptr_array_len</span>(<span class="ident">ptr</span>))
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span>::<span class="ident">from_glib_full_num_as_vec</span>(<span class="ident">ptr</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">c_ptr_array_len</span>(<span class="ident">ptr</span>))
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none_num_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="ident">num</span>: <span class="ident">usize</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibContainerAsVec</span>::<span class="ident">from_glib_none_num_as_vec</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _, <span class="ident">num</span>)
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_container_num_as_vec</span>(_: <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, _: <span class="ident">usize</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="comment">// Can&#39;t free a *const</span>
<span class="macro">unimplemented</span><span class="macro">!</span>()
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full_num_as_vec</span>(_: <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, _: <span class="ident">usize</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="comment">// Can&#39;t free a *const</span>
<span class="macro">unimplemented</span><span class="macro">!</span>()
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibPtrArrayContainerAsVec</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none_as_vec</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">translate</span>::<span class="ident">FromGlibPtrArrayContainerAsVec</span>::<span class="ident">from_glib_none_as_vec</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _)
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_container_as_vec</span>(_: <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="comment">// Can&#39;t free a *const</span>
<span class="macro">unimplemented</span><span class="macro">!</span>()
}
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full_as_vec</span>(_: <span class="kw-2">*</span><span class="kw">const</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>) <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="comment">// Can&#39;t free a *const</span>
<span class="macro">unimplemented</span><span class="macro">!</span>()
}
}
}
}
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">ref_</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>);
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">unref</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>);
}
<span class="doccomment">/// Encapsulates memory management logic for shared types.</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> {
<span class="ident">inner</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>,
<span class="ident">borrowed</span>: <span class="ident">bool</span>,
<span class="ident">mm</span>: <span class="ident">PhantomData</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw">const</span> <span class="ident">MM</span><span class="op">&gt;</span>,
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">Drop</span> <span class="kw">for</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">drop</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) {
<span class="kw">if</span> <span class="op">!</span><span class="self">self</span>.<span class="ident">borrowed</span> {
<span class="kw">unsafe</span> { <span class="ident">MM</span>::<span class="ident">unref</span>(<span class="self">self</span>.<span class="ident">inner</span>); }
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">Clone</span> <span class="kw">for</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">clone</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="kw">unsafe</span> { <span class="ident">MM</span>::<span class="ident">ref_</span>(<span class="self">self</span>.<span class="ident">inner</span>); }
<span class="ident">Shared</span> {
<span class="ident">inner</span>: <span class="self">self</span>.<span class="ident">inner</span>,
<span class="ident">borrowed</span>: <span class="bool-val">false</span>,
<span class="ident">mm</span>: <span class="ident">PhantomData</span>,
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">fmt</span>::<span class="ident">Debug</span> <span class="kw">for</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="macro">write</span><span class="macro">!</span>(<span class="ident">f</span>, <span class="string">&quot;Shared {{ inner: {:?}, borrowed: {} }}&quot;</span>, <span class="self">self</span>.<span class="ident">inner</span>, <span class="self">self</span>.<span class="ident">borrowed</span>)
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">PartialEq</span> <span class="kw">for</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="self">self</span>.<span class="ident">inner</span> <span class="op">==</span> <span class="ident">other</span>.<span class="ident">inner</span>
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">Eq</span> <span class="kw">for</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">Hash</span> <span class="kw">for</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">hash</span><span class="op">&lt;</span><span class="ident">H</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">state</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">H</span>) <span class="kw">where</span> <span class="ident">H</span>: <span class="ident">Hasher</span> {
<span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">hash</span>(<span class="ident">state</span>)
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span><span class="op">&gt;</span> <span class="ident">ToGlibPtr</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span>
<span class="kw">where</span> <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="self">Self</span>;
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_none</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Stash</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>, <span class="self">Self</span><span class="op">&gt;</span> {
<span class="ident">Stash</span>(<span class="self">self</span>.<span class="ident">inner</span>, <span class="self">self</span>)
}
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib_full</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span> {
<span class="kw">unsafe</span> { <span class="ident">MM</span>::<span class="ident">ref_</span>(<span class="self">self</span>.<span class="ident">inner</span>); }
<span class="self">self</span>.<span class="ident">inner</span>
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">FromGlibPtrNone</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="op">!</span><span class="ident">ptr</span>.<span class="ident">is_null</span>());
<span class="ident">MM</span>::<span class="ident">ref_</span>(<span class="ident">ptr</span>);
<span class="ident">Shared</span> {
<span class="ident">inner</span>: <span class="ident">ptr</span>,
<span class="ident">borrowed</span>: <span class="bool-val">false</span>,
<span class="ident">mm</span>: <span class="ident">PhantomData</span>,
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">FromGlibPtrFull</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="op">!</span><span class="ident">ptr</span>.<span class="ident">is_null</span>());
<span class="ident">Shared</span> {
<span class="ident">inner</span>: <span class="ident">ptr</span>,
<span class="ident">borrowed</span>: <span class="bool-val">false</span>,
<span class="ident">mm</span>: <span class="ident">PhantomData</span>,
}
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="lifetime">&#39;static</span>, <span class="ident">MM</span>: <span class="ident">SharedMemoryManager</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;&gt;</span> <span class="ident">FromGlibPtrBorrow</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">MM</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_borrow</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="op">!</span><span class="ident">ptr</span>.<span class="ident">is_null</span>());
<span class="ident">Shared</span> {
<span class="ident">inner</span>: <span class="ident">ptr</span>,
<span class="ident">borrowed</span>: <span class="bool-val">true</span>,
<span class="ident">mm</span>: <span class="ident">PhantomData</span>,
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

258
src/glib/signal.rs.html Normal file
View File

@@ -0,0 +1,258 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/signal.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>signal.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
<span id="72">72</span>
<span id="73">73</span>
<span id="74">74</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2015, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="doccomment">//! `IMPL` Low level signal support.</span>
<span class="kw">use</span> <span class="ident">libc</span>::{<span class="ident">c_void</span>, <span class="ident">c_uint</span>, <span class="ident">c_ulong</span>};
<span class="kw">use</span> <span class="ident">gobject_ffi</span>::{<span class="self">self</span>, <span class="ident">GCallback</span>};
<span class="kw">use</span> <span class="ident">ffi</span>::{<span class="ident">gboolean</span>, <span class="ident">GQuark</span>};
<span class="kw">use</span> <span class="ident">object</span>::{<span class="ident">IsA</span>, <span class="ident">Object</span>};
<span class="kw">use</span> <span class="ident">source</span>::<span class="ident">CallbackGuard</span>;
<span class="kw">use</span> <span class="ident">translate</span>::{<span class="ident">ToGlib</span>, <span class="ident">ToGlibPtr</span>};
<span class="doccomment">/// Whether to propagate the signal to the default handler.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Don&#39;t inhibit default handlers without a reason, they&#39;re usually helpful.</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Default</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Inhibit</span>(<span class="kw">pub</span> <span class="ident">bool</span>);
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">Inhibit</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">gboolean</span>;
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span> {
<span class="self">self</span>.<span class="number">0</span>.<span class="ident">to_glib</span>()
}
}
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">connect</span>(<span class="ident">receiver</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gobject_ffi</span>::<span class="ident">GObject</span>, <span class="ident">signal_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">trampoline</span>: <span class="ident">GCallback</span>,
<span class="ident">closure</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">Box</span><span class="op">&lt;</span><span class="ident">Fn</span>() <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;</span>) <span class="op">-&gt;</span> <span class="ident">u64</span> {
<span class="kw">let</span> <span class="ident">handle</span> <span class="op">=</span> <span class="ident">gobject_ffi</span>::<span class="ident">g_signal_connect_data</span>(<span class="ident">receiver</span>, <span class="ident">signal_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">trampoline</span>, <span class="ident">closure</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _, <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>),
<span class="ident">gobject_ffi</span>::<span class="ident">GConnectFlags</span>::<span class="ident">empty</span>()) <span class="kw">as</span> <span class="ident">u64</span>;
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">handle</span> <span class="op">&gt;</span> <span class="number">0</span>);
<span class="ident">handle</span>
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">signal_handler_block</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IsA</span><span class="op">&lt;</span><span class="ident">Object</span><span class="op">&gt;&gt;</span>(<span class="ident">instance</span>: <span class="kw-2">&amp;</span><span class="ident">T</span>, <span class="ident">handler_id</span>: <span class="ident">u64</span>) {
<span class="kw">unsafe</span> {
<span class="ident">gobject_ffi</span>::<span class="ident">g_signal_handler_block</span>(<span class="ident">instance</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">handler_id</span> <span class="kw">as</span> <span class="ident">c_ulong</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">signal_handler_unblock</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IsA</span><span class="op">&lt;</span><span class="ident">Object</span><span class="op">&gt;&gt;</span>(<span class="ident">instance</span>: <span class="kw-2">&amp;</span><span class="ident">T</span>, <span class="ident">handler_id</span>: <span class="ident">u64</span>) {
<span class="kw">unsafe</span> {
<span class="ident">gobject_ffi</span>::<span class="ident">g_signal_handler_unblock</span>(<span class="ident">instance</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">handler_id</span> <span class="kw">as</span> <span class="ident">c_ulong</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">signal_handler_disconnect</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IsA</span><span class="op">&lt;</span><span class="ident">Object</span><span class="op">&gt;&gt;</span>(<span class="ident">instance</span>: <span class="kw-2">&amp;</span><span class="ident">T</span>, <span class="ident">handler_id</span>: <span class="ident">u64</span>) {
<span class="kw">unsafe</span> {
<span class="ident">gobject_ffi</span>::<span class="ident">g_signal_handler_disconnect</span>(<span class="ident">instance</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">handler_id</span> <span class="kw">as</span> <span class="ident">c_ulong</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">signal_stop_emission</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IsA</span><span class="op">&lt;</span><span class="ident">Object</span><span class="op">&gt;&gt;</span>(<span class="ident">instance</span>: <span class="kw-2">&amp;</span><span class="ident">T</span>, <span class="ident">signal_id</span>: <span class="ident">u32</span>, <span class="ident">detail</span>: <span class="ident">GQuark</span>) {
<span class="kw">unsafe</span> {
<span class="ident">gobject_ffi</span>::<span class="ident">g_signal_stop_emission</span>(<span class="ident">instance</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">signal_id</span> <span class="kw">as</span> <span class="ident">c_uint</span>, <span class="ident">detail</span>);
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">signal_stop_emission_by_name</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">IsA</span><span class="op">&lt;</span><span class="ident">Object</span><span class="op">&gt;&gt;</span>(<span class="ident">instance</span>: <span class="kw-2">&amp;</span><span class="ident">T</span>, <span class="ident">signal_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
<span class="kw">unsafe</span> {
<span class="ident">gobject_ffi</span>::<span class="ident">g_signal_stop_emission_by_name</span>(<span class="ident">instance</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">signal_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span> <span class="ident">destroy_closure</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>, _: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gobject_ffi</span>::<span class="ident">GClosure</span>) {
<span class="kw">let</span> <span class="ident">_guard</span> <span class="op">=</span> <span class="ident">CallbackGuard</span>::<span class="ident">new</span>();
<span class="comment">// destroy</span>
<span class="ident">Box</span>::<span class="op">&lt;</span><span class="ident">Box</span><span class="op">&lt;</span><span class="ident">Fn</span>()<span class="op">&gt;&gt;</span>::<span class="ident">from_raw</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _);
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

788
src/glib/source.rs.html Normal file
View File

@@ -0,0 +1,788 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/source.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>source.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2015, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cell</span>::<span class="ident">RefCell</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>::<span class="ident">transmute</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">process</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">thread</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">ffi</span>::{<span class="ident">gboolean</span>, <span class="ident">gpointer</span>};
<span class="kw">use</span> <span class="ident">translate</span>::{<span class="ident">from_glib</span>, <span class="ident">from_glib_full</span>, <span class="ident">FromGlib</span>, <span class="ident">ToGlib</span>, <span class="ident">ToGlibPtr</span>};
<span class="kw">use</span> <span class="ident">libc</span>;
<span class="kw">use</span> <span class="ident">Source</span>;
<span class="doccomment">/// The id of a source that is returned by `idle_add` and `timeout_add`.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// A value of 0 is a good default as it is never a valid source ID.</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Default</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">SourceId</span>(<span class="ident">u32</span>);
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">SourceId</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">u32</span>;
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">u32</span> {
<span class="self">self</span>.<span class="number">0</span>
}
}
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">u32</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">SourceId</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">val</span>: <span class="ident">u32</span>) <span class="op">-&gt;</span> <span class="ident">SourceId</span> {
<span class="ident">SourceId</span>(<span class="ident">val</span>)
}
}
<span class="doccomment">/// Continue calling the closure in the future iterations or drop it.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// This is the return type of `idle_add` and `timeout_add` closures.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `Continue(true)` keeps the closure assigned, to be rerun when appropriate.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `Continue(false)` disconnects and drops it.</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Continue</span>(<span class="kw">pub</span> <span class="ident">bool</span>);
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">Continue</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">gboolean</span>;
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span> {
<span class="self">self</span>.<span class="number">0</span>.<span class="ident">to_glib</span>()
}
}
<span class="doccomment">/// Unwinding propagation guard. Aborts the process if destroyed while</span>
<span class="doccomment">/// panicking.</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">CallbackGuard</span>(());
<span class="kw">impl</span> <span class="ident">CallbackGuard</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-&gt;</span> <span class="ident">CallbackGuard</span> {
<span class="ident">CallbackGuard</span>(())
}
}
<span class="kw">impl</span> <span class="ident">Default</span> <span class="kw">for</span> <span class="ident">CallbackGuard</span> {
<span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="self">Self</span>::<span class="ident">new</span>()
}
}
<span class="kw">impl</span> <span class="ident">Drop</span> <span class="kw">for</span> <span class="ident">CallbackGuard</span> {
<span class="kw">fn</span> <span class="ident">drop</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) {
<span class="kw">if</span> <span class="ident">thread</span>::<span class="ident">panicking</span>() {
<span class="ident">process</span>::<span class="ident">exit</span>(<span class="number">101</span>);
}
}
}
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">transmute_ptr_to_ref</span>))]</span>
<span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span> <span class="ident">trampoline</span>(<span class="ident">func</span>: <span class="ident">gpointer</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span> {
<span class="kw">let</span> <span class="ident">_guard</span> <span class="op">=</span> <span class="ident">CallbackGuard</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="ident">func</span>: <span class="kw-2">&amp;</span><span class="ident">RefCell</span><span class="op">&lt;</span><span class="ident">Box</span><span class="op">&lt;</span><span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;&gt;</span> <span class="op">=</span> <span class="ident">transmute</span>(<span class="ident">func</span>);
(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="ident">func</span>.<span class="ident">borrow_mut</span>())().<span class="ident">to_glib</span>()
}
<span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span> <span class="ident">destroy_closure</span>(<span class="ident">ptr</span>: <span class="ident">gpointer</span>) {
<span class="kw">let</span> <span class="ident">_guard</span> <span class="op">=</span> <span class="ident">CallbackGuard</span>::<span class="ident">new</span>();
<span class="ident">Box</span>::<span class="op">&lt;</span><span class="ident">RefCell</span><span class="op">&lt;</span><span class="ident">Box</span><span class="op">&lt;</span><span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>::<span class="ident">from_raw</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _);
}
<span class="kw">fn</span> <span class="ident">into_raw</span><span class="op">&lt;</span><span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;</span>(<span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">gpointer</span> {
<span class="kw">let</span> <span class="ident">func</span>: <span class="ident">Box</span><span class="op">&lt;</span><span class="ident">RefCell</span><span class="op">&lt;</span><span class="ident">Box</span><span class="op">&lt;</span><span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span> <span class="op">=</span>
<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">RefCell</span>::<span class="ident">new</span>(<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">func</span>)));
<span class="ident">Box</span>::<span class="ident">into_raw</span>(<span class="ident">func</span>) <span class="kw">as</span> <span class="ident">gpointer</span>
}
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;cargo-clippy&quot;</span>, <span class="ident">allow</span>(<span class="ident">transmute_ptr_to_ref</span>))]</span>
<span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span> <span class="ident">trampoline_child_watch</span>(<span class="ident">pid</span>: <span class="ident">u32</span>, <span class="ident">status</span>: <span class="ident">i32</span>, <span class="ident">func</span>: <span class="ident">gpointer</span>) {
<span class="kw">let</span> <span class="ident">_guard</span> <span class="op">=</span> <span class="ident">CallbackGuard</span>::<span class="ident">new</span>();
<span class="kw">let</span> <span class="ident">func</span>: <span class="kw-2">&amp;</span><span class="ident">RefCell</span><span class="op">&lt;</span><span class="ident">Box</span><span class="op">&lt;</span><span class="ident">FnMut</span>(<span class="ident">u32</span>, <span class="ident">i32</span>) <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;&gt;</span> <span class="op">=</span> <span class="ident">transmute</span>(<span class="ident">func</span>);
(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="ident">func</span>.<span class="ident">borrow_mut</span>())(<span class="ident">pid</span>, <span class="ident">status</span>)
}
<span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span> <span class="ident">destroy_closure_child_watch</span>(<span class="ident">ptr</span>: <span class="ident">gpointer</span>) {
<span class="kw">let</span> <span class="ident">_guard</span> <span class="op">=</span> <span class="ident">CallbackGuard</span>::<span class="ident">new</span>();
<span class="ident">Box</span>::<span class="op">&lt;</span><span class="ident">RefCell</span><span class="op">&lt;</span><span class="ident">Box</span><span class="op">&lt;</span><span class="ident">FnMut</span>(<span class="ident">u32</span>, <span class="ident">i32</span>) <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>::<span class="ident">from_raw</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _);
}
<span class="kw">fn</span> <span class="ident">into_raw_child_watch</span><span class="op">&lt;</span><span class="ident">F</span>: <span class="ident">FnMut</span>(<span class="ident">u32</span>, <span class="ident">i32</span>) <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;</span>(<span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">gpointer</span> {
<span class="kw">let</span> <span class="ident">func</span>: <span class="ident">Box</span><span class="op">&lt;</span><span class="ident">RefCell</span><span class="op">&lt;</span><span class="ident">Box</span><span class="op">&lt;</span><span class="ident">FnMut</span>(<span class="ident">u32</span>, <span class="ident">i32</span>) <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span> <span class="op">=</span>
<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">RefCell</span>::<span class="ident">new</span>(<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">func</span>)));
<span class="ident">Box</span>::<span class="ident">into_raw</span>(<span class="ident">func</span>) <span class="kw">as</span> <span class="ident">gpointer</span>
}
<span class="doccomment">/// Adds a closure to be called by the default main loop when it&#39;s idle.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `func` will be called repeatedly until it returns `Continue(false)`.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// The default main loop almost always is the main loop of the main thread.</span>
<span class="doccomment">/// Thus the closure is called on the main thread.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">idle_add</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">SourceId</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_idle_add_full</span>(<span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_DEFAULT_IDLE</span>, <span class="prelude-val">Some</span>(<span class="ident">trampoline</span>),
<span class="ident">into_raw</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>)))
}
}
<span class="doccomment">/// Adds a closure to be called by the default main loop at regular intervals</span>
<span class="doccomment">/// with millisecond granularity.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `func` will be called repeatedly every `interval` milliseconds until it</span>
<span class="doccomment">/// returns `Continue(false)`. Precise timing is not guaranteed, the timeout may</span>
<span class="doccomment">/// be delayed by other events. Prefer `timeout_add_seconds` when millisecond</span>
<span class="doccomment">/// precision is not necessary.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// The default main loop almost always is the main loop of the main thread.</span>
<span class="doccomment">/// Thus the closure is called on the main thread.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">timeout_add</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">interval</span>: <span class="ident">u32</span>, <span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">SourceId</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_timeout_add_full</span>(<span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_DEFAULT</span>, <span class="ident">interval</span>,
<span class="prelude-val">Some</span>(<span class="ident">trampoline</span>), <span class="ident">into_raw</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>)))
}
}
<span class="doccomment">/// Adds a closure to be called by the default main loop at regular intervals</span>
<span class="doccomment">/// with second granularity.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `func` will be called repeatedly every `interval` seconds until it</span>
<span class="doccomment">/// returns `Continue(false)`. Precise timing is not guaranteed, the timeout may</span>
<span class="doccomment">/// be delayed by other events.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// The default main loop almost always is the main loop of the main thread.</span>
<span class="doccomment">/// Thus the closure is called on the main thread.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">timeout_add_seconds</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">interval</span>: <span class="ident">u32</span>, <span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">SourceId</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_timeout_add_seconds_full</span>(<span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_DEFAULT</span>, <span class="ident">interval</span>,
<span class="prelude-val">Some</span>(<span class="ident">trampoline</span>), <span class="ident">into_raw</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>)))
}
}
<span class="doccomment">/// Adds a closure to be called by the main loop the returned `Source` is attached to when a child</span>
<span class="doccomment">/// process exits.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `func` will be called when `pid` exits</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">child_watch_add</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">N</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>, <span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">pid</span>: <span class="ident">u32</span>, <span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">SourceId</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>(<span class="ident">u32</span>, <span class="ident">i32</span>) <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">trampoline</span> <span class="op">=</span> <span class="ident">trampoline_child_watch</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">libc</span>::<span class="ident">c_void</span>;
<span class="ident">from_glib</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_child_watch_add_full</span>(<span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_DEFAULT</span>, <span class="ident">pid</span> <span class="kw">as</span> <span class="ident">i32</span>,
<span class="prelude-val">Some</span>(<span class="ident">transmute</span>(<span class="ident">trampoline</span>)), <span class="ident">into_raw_child_watch</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure_child_watch</span>)))
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">unix</span>)]</span>
<span class="doccomment">/// Adds a closure to be called by the default main loop whenever a UNIX signal is raised.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `func` will be called repeatedly every time `signum` is raised until it</span>
<span class="doccomment">/// returns `Continue(false)`.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// The default main loop almost always is the main loop of the main thread.</span>
<span class="doccomment">/// Thus the closure is called on the main thread.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">unix_signal_add</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">signum</span>: <span class="ident">i32</span>, <span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">SourceId</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_unix_signal_add_full</span>(<span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_DEFAULT</span>, <span class="ident">signum</span>,
<span class="prelude-val">Some</span>(<span class="ident">trampoline</span>), <span class="ident">into_raw</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>)))
}
}
<span class="doccomment">/// Removes the source with the given id `source_id` from the default main context.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// It is a programmer error to attempt to remove a non-existent source.</span>
<span class="doccomment">/// Note: source id are reused.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// For historical reasons, the native function always returns true, so we</span>
<span class="doccomment">/// ignore it here.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">source_remove</span>(<span class="ident">source_id</span>: <span class="ident">SourceId</span>) {
<span class="kw">unsafe</span> {
<span class="ident">glib_ffi</span>::<span class="ident">g_source_remove</span>(<span class="ident">source_id</span>.<span class="ident">to_glib</span>());
}
}
<span class="doccomment">/// The priority of sources</span>
<span class="doccomment">///</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Default</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Priority</span>(<span class="ident">i32</span>);
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">Priority</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">i32</span>;
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="self">self</span>.<span class="number">0</span>
}
}
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">i32</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Priority</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">val</span>: <span class="ident">i32</span>) <span class="op">-&gt;</span> <span class="ident">Priority</span> {
<span class="ident">Priority</span>(<span class="ident">val</span>)
}
}
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">PRIORITY_HIGH</span>: <span class="ident">Priority</span> <span class="op">=</span> <span class="ident">Priority</span>(<span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_HIGH</span>);
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">PRIORITY_DEFAULT</span>: <span class="ident">Priority</span> <span class="op">=</span> <span class="ident">Priority</span>(<span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_DEFAULT</span>);
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">PRIORITY_HIGH_IDLE</span>: <span class="ident">Priority</span> <span class="op">=</span> <span class="ident">Priority</span>(<span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_HIGH_IDLE</span>);
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">PRIORITY_DEFAULT_IDLE</span>: <span class="ident">Priority</span> <span class="op">=</span> <span class="ident">Priority</span>(<span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_DEFAULT_IDLE</span>);
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">PRIORITY_LOW</span>: <span class="ident">Priority</span> <span class="op">=</span> <span class="ident">Priority</span>(<span class="ident">glib_ffi</span>::<span class="ident">G_PRIORITY_LOW</span>);
<span class="doccomment">/// Adds a closure to be called by the main loop the return `Source` is attached to when it&#39;s idle.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `func` will be called repeatedly until it returns `Continue(false)`.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">idle_source_new</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">N</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>, <span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">name</span>: <span class="ident">N</span>, <span class="ident">priority</span>: <span class="ident">Priority</span>, <span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">Source</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">source</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_idle_source_new</span>();
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_callback</span>(<span class="ident">source</span>, <span class="prelude-val">Some</span>(<span class="ident">trampoline</span>), <span class="ident">into_raw</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>));
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_priority</span>(<span class="ident">source</span>, <span class="ident">priority</span>.<span class="ident">to_glib</span>());
<span class="kw">let</span> <span class="ident">name</span> <span class="op">=</span> <span class="ident">name</span>.<span class="ident">into</span>();
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">name</span>) <span class="op">=</span> <span class="ident">name</span> {
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_name</span>(<span class="ident">source</span>, <span class="ident">name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
<span class="ident">from_glib_full</span>(<span class="ident">source</span>)
}
}
<span class="doccomment">/// Adds a closure to be called by the main loop the returned `Source` is attached to at regular</span>
<span class="doccomment">/// intervals with millisecond granularity.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `func` will be called repeatedly every `interval` milliseconds until it</span>
<span class="doccomment">/// returns `Continue(false)`. Precise timing is not guaranteed, the timeout may</span>
<span class="doccomment">/// be delayed by other events. Prefer `timeout_add_seconds` when millisecond</span>
<span class="doccomment">/// precision is not necessary.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">timeout_source_new</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">N</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>, <span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">interval</span>: <span class="ident">u32</span>, <span class="ident">name</span>: <span class="ident">N</span>, <span class="ident">priority</span>: <span class="ident">Priority</span>, <span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">Source</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">source</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_timeout_source_new</span>(<span class="ident">interval</span>);
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_callback</span>(<span class="ident">source</span>, <span class="prelude-val">Some</span>(<span class="ident">trampoline</span>), <span class="ident">into_raw</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>));
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_priority</span>(<span class="ident">source</span>, <span class="ident">priority</span>.<span class="ident">to_glib</span>());
<span class="kw">let</span> <span class="ident">name</span> <span class="op">=</span> <span class="ident">name</span>.<span class="ident">into</span>();
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">name</span>) <span class="op">=</span> <span class="ident">name</span> {
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_name</span>(<span class="ident">source</span>, <span class="ident">name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
<span class="ident">from_glib_full</span>(<span class="ident">source</span>)
}
}
<span class="doccomment">/// Adds a closure to be called by the main loop the returned `Source` is attached to at regular</span>
<span class="doccomment">/// intervals with second granularity.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `func` will be called repeatedly every `interval` seconds until it</span>
<span class="doccomment">/// returns `Continue(false)`. Precise timing is not guaranteed, the timeout may</span>
<span class="doccomment">/// be delayed by other events.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">timeout_source_new_seconds</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">N</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>, <span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">interval</span>: <span class="ident">u32</span>, <span class="ident">name</span>: <span class="ident">N</span>, <span class="ident">priority</span>: <span class="ident">Priority</span>, <span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">Source</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">source</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_timeout_source_new_seconds</span>(<span class="ident">interval</span>);
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_callback</span>(<span class="ident">source</span>, <span class="prelude-val">Some</span>(<span class="ident">trampoline</span>), <span class="ident">into_raw</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>));
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_priority</span>(<span class="ident">source</span>, <span class="ident">priority</span>.<span class="ident">to_glib</span>());
<span class="kw">let</span> <span class="ident">name</span> <span class="op">=</span> <span class="ident">name</span>.<span class="ident">into</span>();
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">name</span>) <span class="op">=</span> <span class="ident">name</span> {
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_name</span>(<span class="ident">source</span>, <span class="ident">name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
<span class="ident">from_glib_full</span>(<span class="ident">source</span>)
}
}
<span class="doccomment">/// Adds a closure to be called by the main loop the returned `Source` is attached to when a child</span>
<span class="doccomment">/// process exits.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `func` will be called when `pid` exits</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">child_watch_source_new</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">N</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>, <span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">pid</span>: <span class="ident">u32</span>, <span class="ident">name</span>: <span class="ident">N</span>, <span class="ident">priority</span>: <span class="ident">Priority</span>, <span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">Source</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>(<span class="ident">u32</span>, <span class="ident">i32</span>) <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">source</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_child_watch_source_new</span>(<span class="ident">pid</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>::<span class="ident">GPid</span>);
<span class="kw">let</span> <span class="ident">trampoline</span> <span class="op">=</span> <span class="ident">trampoline_child_watch</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">libc</span>::<span class="ident">c_void</span>;
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_callback</span>(<span class="ident">source</span>, <span class="prelude-val">Some</span>(<span class="ident">transmute</span>(<span class="ident">trampoline</span>)), <span class="ident">into_raw_child_watch</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure_child_watch</span>));
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_priority</span>(<span class="ident">source</span>, <span class="ident">priority</span>.<span class="ident">to_glib</span>());
<span class="kw">let</span> <span class="ident">name</span> <span class="op">=</span> <span class="ident">name</span>.<span class="ident">into</span>();
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">name</span>) <span class="op">=</span> <span class="ident">name</span> {
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_name</span>(<span class="ident">source</span>, <span class="ident">name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
<span class="ident">from_glib_full</span>(<span class="ident">source</span>)
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">unix</span>)]</span>
<span class="doccomment">/// Adds a closure to be called by the main loop the returned `Source` is attached to whenever a</span>
<span class="doccomment">/// UNIX signal is raised.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `func` will be called repeatedly every time `signum` is raised until it</span>
<span class="doccomment">/// returns `Continue(false)`.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">unix_signal_source_new</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">N</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>, <span class="ident">F</span><span class="op">&gt;</span>(<span class="ident">signum</span>: <span class="ident">i32</span>, <span class="ident">name</span>: <span class="ident">N</span>, <span class="ident">priority</span>: <span class="ident">Priority</span>, <span class="ident">func</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="ident">Source</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnMut</span>() <span class="op">-&gt;</span> <span class="ident">Continue</span> <span class="op">+</span> <span class="ident">Send</span> <span class="op">+</span> <span class="lifetime">&#39;static</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">source</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_unix_signal_source_new</span>(<span class="ident">signum</span>);
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_callback</span>(<span class="ident">source</span>, <span class="prelude-val">Some</span>(<span class="ident">trampoline</span>), <span class="ident">into_raw</span>(<span class="ident">func</span>), <span class="prelude-val">Some</span>(<span class="ident">destroy_closure</span>));
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_priority</span>(<span class="ident">source</span>, <span class="ident">priority</span>.<span class="ident">to_glib</span>());
<span class="kw">let</span> <span class="ident">name</span> <span class="op">=</span> <span class="ident">name</span>.<span class="ident">into</span>();
<span class="kw">if</span> <span class="kw">let</span> <span class="prelude-val">Some</span>(<span class="ident">name</span>) <span class="op">=</span> <span class="ident">name</span> {
<span class="ident">glib_ffi</span>::<span class="ident">g_source_set_name</span>(<span class="ident">source</span>, <span class="ident">name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
<span class="ident">from_glib_full</span>(<span class="ident">source</span>)
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

142
src/glib/time_val.rs.html Normal file
View File

@@ -0,0 +1,142 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/time_val.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>time_val.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2015, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">GTimeVal</span> <span class="kw">as</span> <span class="ident">TimeVal</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_current_time</span>() <span class="op">-&gt;</span> <span class="ident">TimeVal</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">mem</span>::<span class="ident">uninitialized</span>();
<span class="ident">ffi</span>::<span class="ident">g_get_current_time</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">ret</span>);
<span class="ident">ret</span>
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

2934
src/glib/translate.rs.html Normal file

File diff suppressed because it is too large Load Diff

498
src/glib/types.rs.html Normal file
View File

@@ -0,0 +1,498 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/types.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>types.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2015-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="doccomment">//! Runtime type information.</span>
<span class="kw">use</span> <span class="ident">translate</span>::{<span class="ident">FromGlib</span>, <span class="ident">ToGlib</span>, <span class="ident">from_glib</span>, <span class="ident">from_glib_none</span>};
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fmt</span>;
<span class="doccomment">/// A GLib or GLib-based library type</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">PartialEq</span>, <span class="ident">Eq</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">Type</span> {
<span class="doccomment">/// An invalid `Type` used as error return value in some functions</span>
<span class="ident">Invalid</span>,
<span class="doccomment">/// The fundamental type corresponding to the unit type `()`</span>
<span class="ident">Unit</span>,
<span class="doccomment">/// The fundamental type corresponding to `i8`</span>
<span class="ident">I8</span>,
<span class="doccomment">/// The fundamental type corresponding to `u8`</span>
<span class="ident">U8</span>,
<span class="doccomment">/// The fundamental type corresponding to `bool`</span>
<span class="ident">Bool</span>,
<span class="doccomment">/// The fundamental type corresponding to `i32`</span>
<span class="ident">I32</span>,
<span class="doccomment">/// The fundamental type corresponding to `u32`</span>
<span class="ident">U32</span>,
<span class="doccomment">/// The fundamental type corresponding to C `long`</span>
<span class="ident">ILong</span>,
<span class="doccomment">/// The fundamental type corresponding to C `unsigned long`</span>
<span class="ident">ULong</span>,
<span class="doccomment">/// The fundamental type corresponding to `i64`</span>
<span class="ident">I64</span>,
<span class="doccomment">/// The fundamental type corresponding to `u64`</span>
<span class="ident">U64</span>,
<span class="doccomment">/// The fundamental type corresponding to `f32`</span>
<span class="ident">F32</span>,
<span class="doccomment">/// The fundamental type corresponding to `f64`</span>
<span class="ident">F64</span>,
<span class="doccomment">/// The fundamental type corresponding to `String`</span>
<span class="ident">String</span>,
<span class="doccomment">/// The fundamental type corresponding to a pointer</span>
<span class="ident">Pointer</span>,
<span class="doccomment">/// The fundamental type of GVariant</span>
<span class="ident">Variant</span>,
<span class="doccomment">/// The fundamental type from which all interfaces are derived</span>
<span class="ident">BaseInterface</span>,
<span class="doccomment">/// The fundamental type from which all enumeration types are derived</span>
<span class="ident">BaseEnum</span>,
<span class="doccomment">/// The fundamental type from which all flags types are derived</span>
<span class="ident">BaseFlags</span>,
<span class="doccomment">/// The fundamental type from which all boxed types are derived</span>
<span class="ident">BaseBoxed</span>,
<span class="doccomment">/// The fundamental type from which all `GParamSpec` types are derived</span>
<span class="ident">BaseParamSpec</span>,
<span class="doccomment">/// The fundamental type from which all objects are derived</span>
<span class="ident">BaseObject</span>,
<span class="doccomment">/// A non-fundamental type identified by value of type `usize`</span>
<span class="ident">Other</span>(<span class="ident">usize</span>),
}
<span class="kw">impl</span> <span class="ident">Type</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">name</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">String</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">gobject_ffi</span>::<span class="ident">g_type_name</span>(<span class="self">self</span>.<span class="ident">to_glib</span>()))
}
}
}
<span class="kw">impl</span> <span class="ident">fmt</span>::<span class="ident">Debug</span> <span class="kw">for</span> <span class="ident">Type</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="ident">f</span>.<span class="ident">write_str</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">name</span>())
}
}
<span class="kw">impl</span> <span class="ident">fmt</span>::<span class="ident">Display</span> <span class="kw">for</span> <span class="ident">Type</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="ident">f</span>.<span class="ident">write_str</span>(<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">name</span>())
}
}
<span class="doccomment">/// Types that are supported by GLib dynamic typing.</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">StaticType</span> {
<span class="doccomment">/// Returns the type identifier of `Self`.</span>
<span class="kw">fn</span> <span class="ident">static_type</span>() <span class="op">-&gt;</span> <span class="ident">Type</span>;
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">T</span>: <span class="question-mark">?</span><span class="ident">Sized</span> <span class="op">+</span> <span class="ident">StaticType</span><span class="op">&gt;</span> <span class="ident">StaticType</span> <span class="kw">for</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">T</span> {
<span class="kw">fn</span> <span class="ident">static_type</span>() <span class="op">-&gt;</span> <span class="ident">Type</span> {
<span class="ident">T</span>::<span class="ident">static_type</span>()
}
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">builtin</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">val</span>:<span class="ident">ident</span>) <span class="op">=&gt;</span> {
<span class="kw">impl</span> <span class="ident">StaticType</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">fn</span> <span class="ident">static_type</span>() <span class="op">-&gt;</span> <span class="ident">Type</span> {
<span class="ident">Type</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">val</span>
}
}
}
}
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">bool</span>, <span class="ident">Bool</span>);
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">i8</span>, <span class="ident">I8</span>);
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">u8</span>, <span class="ident">U8</span>);
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">i32</span>, <span class="ident">I32</span>);
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">u32</span>, <span class="ident">U32</span>);
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">i64</span>, <span class="ident">I64</span>);
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">u64</span>, <span class="ident">U64</span>);
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">f32</span>, <span class="ident">F32</span>);
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">f64</span>, <span class="ident">F64</span>);
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">str</span>, <span class="ident">String</span>);
<span class="macro">builtin</span><span class="macro">!</span>(<span class="ident">String</span>, <span class="ident">String</span>);
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">InstanceType</span> {
<span class="kw">fn</span> <span class="ident">instance_type</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Type</span>;
}
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">instance_of</span><span class="op">&lt;</span><span class="ident">C</span>: <span class="ident">StaticType</span><span class="op">&gt;</span>(<span class="ident">ptr</span>: <span class="ident">glib_ffi</span>::<span class="ident">gconstpointer</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(
<span class="ident">gobject_ffi</span>::<span class="ident">g_type_check_instance_is_a</span>(
<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _, <span class="op">&lt;</span><span class="ident">C</span> <span class="kw">as</span> <span class="ident">StaticType</span><span class="op">&gt;</span>::<span class="ident">static_type</span>().<span class="ident">to_glib</span>()))
}
}
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">glib_ffi</span>::<span class="ident">GType</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Type</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">val</span>: <span class="ident">glib_ffi</span>::<span class="ident">GType</span>) <span class="op">-&gt;</span> <span class="ident">Type</span> {
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">Type</span>::<span class="kw-2">*</span>;
<span class="kw">match</span> <span class="ident">val</span> {
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_INVALID</span> <span class="op">=&gt;</span> <span class="ident">Invalid</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_NONE</span> <span class="op">=&gt;</span> <span class="ident">Unit</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_INTERFACE</span> <span class="op">=&gt;</span> <span class="ident">BaseInterface</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_CHAR</span> <span class="op">=&gt;</span> <span class="ident">I8</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_UCHAR</span> <span class="op">=&gt;</span> <span class="ident">U8</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_BOOLEAN</span> <span class="op">=&gt;</span> <span class="ident">Bool</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_INT</span> <span class="op">=&gt;</span> <span class="ident">I32</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_UINT</span> <span class="op">=&gt;</span> <span class="ident">U32</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_LONG</span> <span class="op">=&gt;</span> <span class="ident">ILong</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_ULONG</span> <span class="op">=&gt;</span> <span class="ident">ULong</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_INT64</span> <span class="op">=&gt;</span> <span class="ident">I64</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_UINT64</span> <span class="op">=&gt;</span> <span class="ident">U64</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_ENUM</span> <span class="op">=&gt;</span> <span class="ident">BaseEnum</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_FLAGS</span> <span class="op">=&gt;</span> <span class="ident">BaseFlags</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_FLOAT</span> <span class="op">=&gt;</span> <span class="ident">F32</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_DOUBLE</span> <span class="op">=&gt;</span> <span class="ident">F64</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_STRING</span> <span class="op">=&gt;</span> <span class="ident">String</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_POINTER</span> <span class="op">=&gt;</span> <span class="ident">Pointer</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_BOXED</span> <span class="op">=&gt;</span> <span class="ident">BaseBoxed</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_PARAM</span> <span class="op">=&gt;</span> <span class="ident">BaseParamSpec</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_OBJECT</span> <span class="op">=&gt;</span> <span class="ident">BaseObject</span>,
<span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_VARIANT</span> <span class="op">=&gt;</span> <span class="ident">Variant</span>,
<span class="ident">x</span> <span class="op">=&gt;</span> <span class="ident">Other</span>(<span class="ident">x</span> <span class="kw">as</span> <span class="ident">usize</span>),
}
}
}
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">Type</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">GType</span>;
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">glib_ffi</span>::<span class="ident">GType</span> {
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">Type</span>::<span class="kw-2">*</span>;
<span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
<span class="ident">Invalid</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_INVALID</span>,
<span class="ident">Unit</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_NONE</span>,
<span class="ident">BaseInterface</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_INTERFACE</span>,
<span class="ident">I8</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_CHAR</span>,
<span class="ident">U8</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_UCHAR</span>,
<span class="ident">Bool</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_BOOLEAN</span>,
<span class="ident">I32</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_INT</span>,
<span class="ident">U32</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_UINT</span>,
<span class="ident">ILong</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_LONG</span>,
<span class="ident">ULong</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_ULONG</span>,
<span class="ident">I64</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_INT64</span>,
<span class="ident">U64</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_UINT64</span>,
<span class="ident">BaseEnum</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_ENUM</span>,
<span class="ident">BaseFlags</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_FLAGS</span>,
<span class="ident">F32</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_FLOAT</span>,
<span class="ident">F64</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_DOUBLE</span>,
<span class="ident">String</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_STRING</span>,
<span class="ident">Pointer</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_POINTER</span>,
<span class="ident">BaseBoxed</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_BOXED</span>,
<span class="ident">BaseParamSpec</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_PARAM</span>,
<span class="ident">BaseObject</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_OBJECT</span>,
<span class="ident">Variant</span> <span class="op">=&gt;</span> <span class="ident">gobject_ffi</span>::<span class="ident">G_TYPE_VARIANT</span>,
<span class="ident">Other</span>(<span class="ident">x</span>) <span class="op">=&gt;</span> <span class="ident">x</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>::<span class="ident">GType</span>,
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

468
src/glib/utils.rs.html Normal file
View File

@@ -0,0 +1,468 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/utils.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>utils.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2015-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">std</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">path</span>::{<span class="ident">Path</span>, <span class="ident">PathBuf</span>};
<span class="kw">use</span> <span class="ident">error</span>::<span class="ident">BoolError</span>;
<span class="kw">use</span> <span class="ident">Error</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="doccomment">/// Same as [`get_prgname()`].</span>
<span class="doccomment">///</span>
<span class="doccomment">/// [`get_prgname()`]: fn.get_prgname.html</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_program_name</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="ident">get_prgname</span>()
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_prgname</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">g_get_prgname</span>())
}
}
<span class="doccomment">/// Same as [`set_prgname()`].</span>
<span class="doccomment">///</span>
<span class="doccomment">/// [`set_prgname()`]: fn.set_prgname.html</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_program_name</span>(<span class="ident">name</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="ident">str</span><span class="op">&gt;</span>) {
<span class="ident">set_prgname</span>(<span class="ident">name</span>)
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_prgname</span>(<span class="ident">name</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="ident">str</span><span class="op">&gt;</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">g_set_prgname</span>(<span class="ident">name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">getenv</span>(<span class="ident">variable_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_getenv_utf8</span> <span class="kw">as</span> <span class="ident">g_getenv</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_getenv</span>;
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">g_getenv</span>(<span class="ident">variable_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">setenv</span>(<span class="ident">variable_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">value</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">overwrite</span>: <span class="ident">bool</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">BoolError</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_setenv_utf8</span> <span class="kw">as</span> <span class="ident">g_setenv</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_setenv</span>;
<span class="kw">unsafe</span> {
<span class="ident">BoolError</span>::<span class="ident">from_glib</span>(<span class="ident">g_setenv</span>(<span class="ident">variable_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">value</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">overwrite</span>.<span class="ident">to_glib</span>()),
<span class="string">&quot;Failed to set environment variable&quot;</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">unsetenv</span>(<span class="ident">variable_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_unsetenv_utf8</span> <span class="kw">as</span> <span class="ident">g_unsetenv</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_unsetenv</span>;
<span class="kw">unsafe</span> {
<span class="ident">g_unsetenv</span>(<span class="ident">variable_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_user_name</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">windows</span>,<span class="ident">target_arch</span><span class="op">=</span><span class="string">&quot;x86&quot;</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_get_user_name_utf8</span> <span class="kw">as</span> <span class="ident">g_get_user_name</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">all</span>(<span class="ident">windows</span>,<span class="ident">target_arch</span><span class="op">=</span><span class="string">&quot;x86&quot;</span>)))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_get_user_name</span>;
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">g_get_user_name</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_real_name</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">PathBuf</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">windows</span>,<span class="ident">target_arch</span><span class="op">=</span><span class="string">&quot;x86&quot;</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_get_real_name_utf8</span> <span class="kw">as</span> <span class="ident">g_get_real_name</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">all</span>(<span class="ident">windows</span>,<span class="ident">target_arch</span><span class="op">=</span><span class="string">&quot;x86&quot;</span>)))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_get_real_name</span>;
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">g_get_real_name</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_current_dir</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">PathBuf</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_get_current_dir_utf8</span> <span class="kw">as</span> <span class="ident">g_get_current_dir</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_get_current_dir</span>;
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">g_get_current_dir</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">filename_to_uri</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">P</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">Path</span><span class="op">&gt;</span>, <span class="ident">Q</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(<span class="ident">filename</span>: <span class="ident">P</span>, <span class="ident">hostname</span>: <span class="ident">Q</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">String</span>, <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_filename_to_uri_utf8</span> <span class="kw">as</span> <span class="ident">g_filename_to_uri</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_filename_to_uri</span>;
<span class="kw">let</span> <span class="ident">hostname</span> <span class="op">=</span> <span class="ident">hostname</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">hostname</span> <span class="op">=</span> <span class="ident">hostname</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">std</span>::<span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">g_filename_to_uri</span>(<span class="ident">filename</span>.<span class="ident">as_ref</span>().<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="ident">hostname</span>.<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>(<span class="ident">from_glib_full</span>(<span class="ident">ret</span>)) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">filename_from_uri</span>(<span class="ident">uri</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(<span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">PathBuf</span>, <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span>), <span class="ident">Error</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_filename_from_uri_utf8</span> <span class="kw">as</span> <span class="ident">g_filename_from_uri</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_filename_from_uri</span>;
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">hostname</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">error</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">g_filename_from_uri</span>(<span class="ident">uri</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">hostname</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">error</span>);
<span class="kw">if</span> <span class="ident">error</span>.<span class="ident">is_null</span>() { <span class="prelude-val">Ok</span>((<span class="ident">from_glib_full</span>(<span class="ident">ret</span>), <span class="ident">from_glib_full</span>(<span class="ident">hostname</span>))) } <span class="kw">else</span> { <span class="prelude-val">Err</span>(<span class="ident">from_glib_full</span>(<span class="ident">error</span>)) }
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">find_program_in_path</span><span class="op">&lt;</span><span class="ident">P</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">Path</span><span class="op">&gt;&gt;</span>(<span class="ident">program</span>: <span class="ident">P</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">PathBuf</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">windows</span>,<span class="ident">target_arch</span><span class="op">=</span><span class="string">&quot;x86&quot;</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_find_program_in_path_utf8</span> <span class="kw">as</span> <span class="ident">g_find_program_in_path</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">all</span>(<span class="ident">windows</span>,<span class="ident">target_arch</span><span class="op">=</span><span class="string">&quot;x86&quot;</span>)))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_find_program_in_path</span>;
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">g_find_program_in_path</span>(<span class="ident">program</span>.<span class="ident">as_ref</span>().<span class="ident">to_glib_none</span>().<span class="number">0</span>))
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_home_dir</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">PathBuf</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">windows</span>,<span class="ident">target_arch</span><span class="op">=</span><span class="string">&quot;x86&quot;</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_get_home_dir_utf8</span> <span class="kw">as</span> <span class="ident">g_get_home_dir</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">all</span>(<span class="ident">windows</span>,<span class="ident">target_arch</span><span class="op">=</span><span class="string">&quot;x86&quot;</span>)))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_get_home_dir</span>;
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">g_get_home_dir</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_tmp_dir</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">PathBuf</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">windows</span>,<span class="ident">target_arch</span><span class="op">=</span><span class="string">&quot;x86&quot;</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_get_tmp_dir_utf8</span> <span class="kw">as</span> <span class="ident">g_get_tmp_dir</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">all</span>(<span class="ident">windows</span>,<span class="ident">target_arch</span><span class="op">=</span><span class="string">&quot;x86&quot;</span>)))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_get_tmp_dir</span>;
<span class="kw">unsafe</span> {
<span class="ident">from_glib_none</span>(<span class="ident">g_get_tmp_dir</span>())
}
}
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">mkstemp</span><span class="op">&lt;</span><span class="ident">P</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">std</span>::<span class="ident">path</span>::<span class="ident">Path</span><span class="op">&gt;&gt;</span>(<span class="ident">tmpl</span>: <span class="ident">P</span>) <span class="op">-&gt;</span> <span class="ident">i32</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_mkstemp_utf8</span> <span class="kw">as</span> <span class="ident">g_mkstemp</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">windows</span>))]</span>
<span class="kw">use</span> <span class="ident">ffi</span>::<span class="ident">g_mkstemp</span>;
<span class="kw">unsafe</span> {
<span class="ident">g_mkstemp</span>(<span class="ident">tmpl</span>.<span class="ident">as_ref</span>().<span class="ident">to_glib_none</span>().<span class="number">0</span>)
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

1506
src/glib/value.rs.html Normal file

File diff suppressed because it is too large Load Diff

824
src/glib/variant.rs.html Normal file
View File

@@ -0,0 +1,824 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/variant.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>variant.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
<span id="340">340</span>
<span id="341">341</span>
<span id="342">342</span>
<span id="343">343</span>
<span id="344">344</span>
<span id="345">345</span>
<span id="346">346</span>
<span id="347">347</span>
<span id="348">348</span>
<span id="349">349</span>
<span id="350">350</span>
<span id="351">351</span>
<span id="352">352</span>
<span id="353">353</span>
<span id="354">354</span>
<span id="355">355</span>
<span id="356">356</span>
<span id="357">357</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="doccomment">//! `Variant` binding and helper traits.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! [`Variant`](struct.Variant.html) is an immutable dynamically-typed generic</span>
<span class="doccomment">//! container. Its type and value are defined at construction and never change.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! `Variant` types are described by [`VariantType`](../struct.VariantType.html)</span>
<span class="doccomment">//! &quot;type strings&quot;.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! Although `GVariant` supports arbitrarily complex types, this binding is</span>
<span class="doccomment">//! currently limited to the basic ones: `bool`, `u8`, `i16`, `u16`, `i32`,</span>
<span class="doccomment">//! `u32`, `i64`, `u64`, `f64` and `&amp;str`/`String`.</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! # Examples</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! ```</span>
<span class="doccomment">//! use glib::prelude::*; // or `use gtk::prelude::*;`</span>
<span class="doccomment">//! use glib::Variant;</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! // Using the `ToVariant` trait.</span>
<span class="doccomment">//! let num = 10.to_variant();</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! // `is` tests the type of the value.</span>
<span class="doccomment">//! assert!(num.is::&lt;i32&gt;());</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! // `get` tries to extract the value.</span>
<span class="doccomment">//! assert_eq!(num.get::&lt;i32&gt;(), Some(10));</span>
<span class="doccomment">//! assert_eq!(num.get::&lt;u32&gt;(), None);</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! // `Variant` implements `From`</span>
<span class="doccomment">//! let hello = Variant::from(&quot;Hello!&quot;);</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! // `get_str` tries to borrow a string slice.</span>
<span class="doccomment">//! assert_eq!(hello.get_str(), Some(&quot;Hello!&quot;));</span>
<span class="doccomment">//! assert_eq!(num.get_str(), None);</span>
<span class="doccomment">//! ```</span>
<span class="kw">use</span> <span class="ident">VariantTy</span>;
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">borrow</span>::<span class="ident">Cow</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cmp</span>::{<span class="ident">PartialEq</span>, <span class="ident">Eq</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fmt</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">hash</span>::{<span class="ident">Hash</span>, <span class="ident">Hasher</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">slice</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">str</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="doccomment">/// A generic immutable value capable of carrying various types.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// See the [module documentation](index.html) for more details.</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Variant</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="ident">glib_ffi</span>::<span class="ident">GVariant</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">glib_ffi</span>::<span class="ident">g_variant_ref_sink</span>(<span class="ident">ptr</span>),
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="ident">ptr</span><span class="op">|</span> <span class="ident">glib_ffi</span>::<span class="ident">g_variant_unref</span>(<span class="ident">ptr</span>),
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">glib_ffi</span>::<span class="ident">g_variant_type_get_gtype</span>(),
}
}
<span class="kw">impl</span> <span class="ident">Variant</span> {
<span class="doccomment">/// Returns the type of the value.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">type_</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">VariantTy</span> {
<span class="kw">unsafe</span> { <span class="ident">VariantTy</span>::<span class="ident">from_ptr</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_variant_get_type</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)) }
}
<span class="doccomment">/// Returns `true` if the type of the value corresponds to `T`.</span>
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">StaticVariantType</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="self">self</span>.<span class="ident">type_</span>() <span class="op">==</span> <span class="ident">T</span>::<span class="ident">static_variant_type</span>()
}
<span class="doccomment">/// Tries to extract a value of type `T`.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Returns `Some` if `T` matches the variant&#39;s type.</span>
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">FromVariant</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="ident">T</span>::<span class="ident">from_variant</span>(<span class="self">self</span>)
}
<span class="doccomment">/// Tries to extract a `&amp;str`.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Returns `Some` if the variant has a string type (`s`, `o` or `g` type</span>
<span class="doccomment">/// strings).</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_str</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="ident">str</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">match</span> <span class="self">self</span>.<span class="ident">type_</span>().<span class="ident">to_str</span>() {
<span class="string">&quot;s&quot;</span> <span class="op">|</span> <span class="string">&quot;o&quot;</span> <span class="op">|</span> <span class="string">&quot;g&quot;</span> <span class="op">=&gt;</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">len</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_variant_get_string</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">len</span>);
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">str</span>::<span class="ident">from_utf8_unchecked</span>(
<span class="ident">slice</span>::<span class="ident">from_raw_parts</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">u8</span>, <span class="ident">len</span> <span class="kw">as</span> <span class="ident">usize</span>));
<span class="prelude-val">Some</span>(<span class="ident">ret</span>)
}
_ <span class="op">=&gt;</span> <span class="prelude-val">None</span>,
}
}
}
}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Send</span> <span class="kw">for</span> <span class="ident">Variant</span> { }
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">Variant</span> { }
<span class="kw">impl</span> <span class="ident">fmt</span>::<span class="ident">Debug</span> <span class="kw">for</span> <span class="ident">Variant</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="ident">f</span>.<span class="ident">write_fmt</span>(<span class="macro">format_args</span><span class="macro">!</span>(<span class="string">&quot;Variant {{ ptr: {:?}, type: \&quot;{}\&quot;, value: {} }}&quot;</span>,
<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="self">self</span>.<span class="ident">type_</span>(), <span class="self">self</span>))
}
}
<span class="kw">impl</span> <span class="ident">fmt</span>::<span class="ident">Display</span> <span class="kw">for</span> <span class="ident">Variant</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="kw">let</span> <span class="ident">serialized</span>: <span class="ident">String</span> <span class="op">=</span> <span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_variant_print</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="bool-val">false</span>.<span class="ident">to_glib</span>()))
};
<span class="ident">f</span>.<span class="ident">write_str</span>(<span class="kw-2">&amp;</span><span class="ident">serialized</span>)
}
}
<span class="kw">impl</span> <span class="ident">PartialEq</span> <span class="kw">for</span> <span class="ident">Variant</span> {
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> {
<span class="ident">from_glib</span>(
<span class="ident">glib_ffi</span>::<span class="ident">g_variant_equal</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _,
<span class="ident">other</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _))
}
}
}
<span class="kw">impl</span> <span class="ident">Eq</span> <span class="kw">for</span> <span class="ident">Variant</span> { }
<span class="kw">impl</span> <span class="ident">Hash</span> <span class="kw">for</span> <span class="ident">Variant</span> {
<span class="kw">fn</span> <span class="ident">hash</span><span class="op">&lt;</span><span class="ident">H</span>: <span class="ident">Hasher</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">state</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">H</span>) {
<span class="kw">unsafe</span> {
<span class="ident">state</span>.<span class="ident">write_u32</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_variant_hash</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _))
}
}
}
<span class="doccomment">/// Converts to `Variant`.</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">ToVariant</span> {
<span class="doccomment">/// Returns a `Variant` clone of `self`.</span>
<span class="kw">fn</span> <span class="ident">to_variant</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Variant</span>;
}
<span class="doccomment">/// Extracts a value.</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">FromVariant</span>: <span class="ident">Sized</span> <span class="op">+</span> <span class="ident">StaticVariantType</span> {
<span class="doccomment">/// Tries to extract a value.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Returns `Some` if the variant&#39;s type matches `Self`.</span>
<span class="kw">fn</span> <span class="ident">from_variant</span>(<span class="ident">variant</span>: <span class="kw-2">&amp;</span><span class="ident">Variant</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span>;
}
<span class="doccomment">/// Returns `VariantType` of `Self`.</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">StaticVariantType</span> {
<span class="doccomment">/// Returns the `VariantType` corresponding to `Self`.</span>
<span class="kw">fn</span> <span class="ident">static_variant_type</span>() <span class="op">-&gt;</span> <span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;static</span>, <span class="ident">VariantTy</span><span class="op">&gt;</span>;
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">T</span>: <span class="question-mark">?</span><span class="ident">Sized</span> <span class="op">+</span> <span class="ident">ToVariant</span><span class="op">&gt;</span> <span class="ident">ToVariant</span> <span class="kw">for</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">T</span> {
<span class="kw">fn</span> <span class="ident">to_variant</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Variant</span> {
<span class="op">&lt;</span><span class="ident">T</span> <span class="kw">as</span> <span class="ident">ToVariant</span><span class="op">&gt;</span>::<span class="ident">to_variant</span>(<span class="self">self</span>)
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">T</span>: <span class="question-mark">?</span><span class="ident">Sized</span> <span class="op">+</span> <span class="ident">StaticVariantType</span><span class="op">&gt;</span> <span class="ident">StaticVariantType</span> <span class="kw">for</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">T</span> {
<span class="kw">fn</span> <span class="ident">static_variant_type</span>() <span class="op">-&gt;</span> <span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;static</span>, <span class="ident">VariantTy</span><span class="op">&gt;</span> {
<span class="op">&lt;</span><span class="ident">T</span> <span class="kw">as</span> <span class="ident">StaticVariantType</span><span class="op">&gt;</span>::<span class="ident">static_variant_type</span>()
}
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">impl_numeric</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ty</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">type_str</span>:<span class="ident">expr</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">new_fn</span>:<span class="ident">ident</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_fn</span>:<span class="ident">ident</span>) <span class="op">=&gt;</span> {
<span class="kw">impl</span> <span class="ident">StaticVariantType</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">fn</span> <span class="ident">static_variant_type</span>() <span class="op">-&gt;</span> <span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;static</span>, <span class="ident">VariantTy</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> { <span class="ident">VariantTy</span>::<span class="ident">from_str_unchecked</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">type_str</span>).<span class="ident">into</span>() }
}
}
<span class="kw">impl</span> <span class="ident">ToVariant</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">fn</span> <span class="ident">to_variant</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Variant</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_none</span>(<span class="ident">glib_ffi</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">new_fn</span>(<span class="kw-2">*</span><span class="self">self</span>)) }
}
}
<span class="kw">impl</span> <span class="ident">FromVariant</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span> {
<span class="kw">fn</span> <span class="ident">from_variant</span>(<span class="ident">variant</span>: <span class="kw-2">&amp;</span><span class="ident">Variant</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">if</span> <span class="ident">variant</span>.<span class="ident">is</span>::<span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span>() {
<span class="prelude-val">Some</span>(<span class="ident">glib_ffi</span>::<span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_fn</span>(<span class="ident">variant</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>))
} <span class="kw">else</span> {
<span class="prelude-val">None</span>
}
}
}
}
}
}
<span class="macro">impl_numeric</span><span class="macro">!</span>(<span class="ident">u8</span>, <span class="string">&quot;y&quot;</span>, <span class="ident">g_variant_new_byte</span>, <span class="ident">g_variant_get_byte</span>);
<span class="macro">impl_numeric</span><span class="macro">!</span>(<span class="ident">i16</span>, <span class="string">&quot;n&quot;</span>, <span class="ident">g_variant_new_int16</span>, <span class="ident">g_variant_get_int16</span>);
<span class="macro">impl_numeric</span><span class="macro">!</span>(<span class="ident">u16</span>, <span class="string">&quot;q&quot;</span>, <span class="ident">g_variant_new_uint16</span>, <span class="ident">g_variant_get_uint16</span>);
<span class="macro">impl_numeric</span><span class="macro">!</span>(<span class="ident">i32</span>, <span class="string">&quot;i&quot;</span>, <span class="ident">g_variant_new_int32</span>, <span class="ident">g_variant_get_int32</span>);
<span class="macro">impl_numeric</span><span class="macro">!</span>(<span class="ident">u32</span>, <span class="string">&quot;u&quot;</span>, <span class="ident">g_variant_new_uint32</span>, <span class="ident">g_variant_get_uint32</span>);
<span class="macro">impl_numeric</span><span class="macro">!</span>(<span class="ident">i64</span>, <span class="string">&quot;x&quot;</span>, <span class="ident">g_variant_new_int64</span>, <span class="ident">g_variant_get_int64</span>);
<span class="macro">impl_numeric</span><span class="macro">!</span>(<span class="ident">u64</span>, <span class="string">&quot;t&quot;</span>, <span class="ident">g_variant_new_uint64</span>, <span class="ident">g_variant_get_uint64</span>);
<span class="macro">impl_numeric</span><span class="macro">!</span>(<span class="ident">f64</span>, <span class="string">&quot;d&quot;</span>, <span class="ident">g_variant_new_double</span>, <span class="ident">g_variant_get_double</span>);
<span class="kw">impl</span> <span class="ident">StaticVariantType</span> <span class="kw">for</span> <span class="ident">bool</span> {
<span class="kw">fn</span> <span class="ident">static_variant_type</span>() <span class="op">-&gt;</span> <span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;static</span>, <span class="ident">VariantTy</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> { <span class="ident">VariantTy</span>::<span class="ident">from_str_unchecked</span>(<span class="string">&quot;b&quot;</span>).<span class="ident">into</span>() }
}
}
<span class="kw">impl</span> <span class="ident">ToVariant</span> <span class="kw">for</span> <span class="ident">bool</span> {
<span class="kw">fn</span> <span class="ident">to_variant</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Variant</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_none</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_variant_new_boolean</span>(<span class="self">self</span>.<span class="ident">to_glib</span>())) }
}
}
<span class="kw">impl</span> <span class="ident">FromVariant</span> <span class="kw">for</span> <span class="ident">bool</span> {
<span class="kw">fn</span> <span class="ident">from_variant</span>(<span class="ident">variant</span>: <span class="kw-2">&amp;</span><span class="ident">Variant</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">if</span> <span class="ident">variant</span>.<span class="ident">is</span>::<span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span>() {
<span class="prelude-val">Some</span>(<span class="ident">from_glib</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_variant_get_boolean</span>(<span class="ident">variant</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)))
} <span class="kw">else</span> {
<span class="prelude-val">None</span>
}
}
}
}
<span class="kw">impl</span> <span class="ident">StaticVariantType</span> <span class="kw">for</span> <span class="ident">String</span> {
<span class="kw">fn</span> <span class="ident">static_variant_type</span>() <span class="op">-&gt;</span> <span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;static</span>, <span class="ident">VariantTy</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> { <span class="ident">VariantTy</span>::<span class="ident">from_str_unchecked</span>(<span class="string">&quot;s&quot;</span>).<span class="ident">into</span>() }
}
}
<span class="kw">impl</span> <span class="ident">ToVariant</span> <span class="kw">for</span> <span class="ident">String</span> {
<span class="kw">fn</span> <span class="ident">to_variant</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Variant</span> {
<span class="self">self</span>[..].<span class="ident">to_variant</span>()
}
}
<span class="kw">impl</span> <span class="ident">FromVariant</span> <span class="kw">for</span> <span class="ident">String</span> {
<span class="kw">fn</span> <span class="ident">from_variant</span>(<span class="ident">variant</span>: <span class="kw-2">&amp;</span><span class="ident">Variant</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="ident">variant</span>.<span class="ident">get_str</span>().<span class="ident">map</span>(<span class="ident">String</span>::<span class="ident">from</span>)
}
}
<span class="kw">impl</span> <span class="ident">StaticVariantType</span> <span class="kw">for</span> <span class="ident">str</span> {
<span class="kw">fn</span> <span class="ident">static_variant_type</span>() <span class="op">-&gt;</span> <span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;static</span>, <span class="ident">VariantTy</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> { <span class="ident">VariantTy</span>::<span class="ident">from_str_unchecked</span>(<span class="string">&quot;s&quot;</span>).<span class="ident">into</span>() }
}
}
<span class="kw">impl</span> <span class="ident">ToVariant</span> <span class="kw">for</span> <span class="ident">str</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_38&quot;</span>)]</span>
<span class="kw">fn</span> <span class="ident">to_variant</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Variant</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_none</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_variant_new_take_string</span>(<span class="self">self</span>.<span class="ident">to_glib_full</span>())) }
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;v2_38&quot;</span>))]</span>
<span class="kw">fn</span> <span class="ident">to_variant</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Variant</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib_none</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_variant_new_string</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>)) }
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">ToVariant</span><span class="op">&gt;</span> <span class="ident">From</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Variant</span> {
<span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">value</span>: <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="ident">Variant</span> {
<span class="ident">value</span>.<span class="ident">to_variant</span>()
}
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">collections</span>::<span class="ident">HashSet</span>;
<span class="kw">use</span> <span class="kw">super</span>::<span class="kw-2">*</span>;
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">unsigned</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span>:<span class="ident">ident</span>) <span class="op">=&gt;</span> {
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">n</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span>::<span class="ident">max_value</span>();
<span class="kw">while</span> <span class="ident">n</span> <span class="op">&gt;</span> <span class="number">0</span> {
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="ident">n</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">v</span>.<span class="ident">get</span>(), <span class="prelude-val">Some</span>(<span class="ident">n</span>));
<span class="ident">n</span> <span class="op">/=</span> <span class="number">2</span>;
}
}
}
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">signed</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span>:<span class="ident">ident</span>) <span class="op">=&gt;</span> {
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>() {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">n</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ty</span>::<span class="ident">max_value</span>();
<span class="kw">while</span> <span class="ident">n</span> <span class="op">&gt;</span> <span class="number">0</span> {
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="ident">n</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">v</span>.<span class="ident">get</span>(), <span class="prelude-val">Some</span>(<span class="ident">n</span>));
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="op">-</span><span class="ident">n</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">v</span>.<span class="ident">get</span>(), <span class="prelude-val">Some</span>(<span class="op">-</span><span class="ident">n</span>));
<span class="ident">n</span> <span class="op">/=</span> <span class="number">2</span>;
}
}
}
}
<span class="macro">unsigned</span><span class="macro">!</span>(<span class="ident">test_u8</span>, <span class="ident">u8</span>);
<span class="macro">unsigned</span><span class="macro">!</span>(<span class="ident">test_u16</span>, <span class="ident">u16</span>);
<span class="macro">unsigned</span><span class="macro">!</span>(<span class="ident">test_u32</span>, <span class="ident">u32</span>);
<span class="macro">unsigned</span><span class="macro">!</span>(<span class="ident">test_u64</span>, <span class="ident">u64</span>);
<span class="macro">signed</span><span class="macro">!</span>(<span class="ident">test_i16</span>, <span class="ident">i16</span>);
<span class="macro">signed</span><span class="macro">!</span>(<span class="ident">test_i32</span>, <span class="ident">i32</span>);
<span class="macro">signed</span><span class="macro">!</span>(<span class="ident">test_i64</span>, <span class="ident">i64</span>);
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_str</span>() {
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="string">&quot;this is a test&quot;</span>;
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="ident">s</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">v</span>.<span class="ident">get_str</span>(), <span class="prelude-val">Some</span>(<span class="ident">s</span>));
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_string</span>() {
<span class="kw">let</span> <span class="ident">s</span> <span class="op">=</span> <span class="ident">String</span>::<span class="ident">from</span>(<span class="string">&quot;this is a test&quot;</span>);
<span class="kw">let</span> <span class="ident">v</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="ident">s</span>.<span class="ident">clone</span>());
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">v</span>.<span class="ident">get</span>(), <span class="prelude-val">Some</span>(<span class="ident">s</span>.<span class="ident">clone</span>()));
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_eq</span>() {
<span class="kw">let</span> <span class="ident">v1</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="string">&quot;this is a test&quot;</span>);
<span class="kw">let</span> <span class="ident">v2</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="string">&quot;this is a test&quot;</span>);
<span class="kw">let</span> <span class="ident">v3</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="string">&quot;test&quot;</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">v1</span>, <span class="ident">v2</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">v1</span> <span class="op">!=</span> <span class="ident">v3</span>);
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">test_hash</span>() {
<span class="kw">let</span> <span class="ident">v1</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="string">&quot;this is a test&quot;</span>);
<span class="kw">let</span> <span class="ident">v2</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="string">&quot;this is a test&quot;</span>);
<span class="kw">let</span> <span class="ident">v3</span> <span class="op">=</span> <span class="ident">Variant</span>::<span class="ident">from</span>(<span class="string">&quot;test&quot;</span>);
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">set</span> <span class="op">=</span> <span class="ident">HashSet</span>::<span class="ident">new</span>();
<span class="ident">set</span>.<span class="ident">insert</span>(<span class="ident">v1</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">set</span>.<span class="ident">contains</span>(<span class="kw-2">&amp;</span><span class="ident">v2</span>));
<span class="macro">assert</span><span class="macro">!</span>(<span class="op">!</span><span class="ident">set</span>.<span class="ident">contains</span>(<span class="kw-2">&amp;</span><span class="ident">v3</span>));
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,810 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/variant_type.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>variant_type.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
<span id="340">340</span>
<span id="341">341</span>
<span id="342">342</span>
<span id="343">343</span>
<span id="344">344</span>
<span id="345">345</span>
<span id="346">346</span>
<span id="347">347</span>
<span id="348">348</span>
<span id="349">349</span>
<span id="350">350</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2013-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">borrow</span>::{<span class="ident">Borrow</span>, <span class="ident">Cow</span>, <span class="ident">ToOwned</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">cmp</span>::{<span class="ident">PartialEq</span>, <span class="ident">Eq</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">fmt</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">hash</span>::{<span class="ident">Hash</span>, <span class="ident">Hasher</span>};
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ops</span>::<span class="ident">Deref</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">slice</span>;
<span class="doccomment">/// Describes `Variant` types.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// The `Variant` type system (based on the D-Bus one) describes types with</span>
<span class="doccomment">/// &quot;type strings&quot;. `VariantType` is an owned immutable type string (you can</span>
<span class="doccomment">/// think of it as a `Box&lt;str&gt;` statically guaranteed to be a valid type</span>
<span class="doccomment">/// string), `&amp;VariantTy` is a borrowed one (like `&amp;str`).</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">VariantType</span> {
<span class="comment">// GVariantType* essentially is a char*, that always is valid UTF-8 but</span>
<span class="comment">// isn&#39;t NUL-terminated.</span>
<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span>,
<span class="comment">// We query the length on creation assuming it&#39;s cheap (because type strings</span>
<span class="comment">// are short) and likely to happen anyway.</span>
<span class="ident">len</span>: <span class="ident">usize</span>,
}
<span class="kw">impl</span> <span class="ident">VariantType</span> {
<span class="doccomment">/// Tries to create a `VariantType` from a string slice.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Returns `Ok` if the string is a valid type string, `Err` otherwise.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">type_string</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="ident">VariantType</span>, ()<span class="op">&gt;</span> {
<span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="ident">type_string</span>).<span class="ident">map</span>(<span class="ident">ToOwned</span>::<span class="ident">to_owned</span>)
}
}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Send</span> <span class="kw">for</span> <span class="ident">VariantType</span> { }
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">VariantType</span> { }
<span class="kw">impl</span> <span class="ident">Drop</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">fn</span> <span class="ident">drop</span>(<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>) {
<span class="kw">unsafe</span> { <span class="ident">glib_ffi</span>::<span class="ident">g_variant_type_free</span>(<span class="self">self</span>.<span class="ident">ptr</span>) }
}
}
<span class="kw">impl</span> <span class="ident">Borrow</span><span class="op">&lt;</span><span class="ident">VariantTy</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">fn</span> <span class="ident">borrow</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">VariantTy</span> {
<span class="self">self</span>
}
}
<span class="kw">impl</span> <span class="ident">Clone</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">fn</span> <span class="ident">clone</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">VariantType</span> {
<span class="kw">unsafe</span> {
<span class="ident">VariantType</span> {
<span class="ident">ptr</span>: <span class="ident">glib_ffi</span>::<span class="ident">g_variant_type_copy</span>(<span class="self">self</span>.<span class="ident">ptr</span>),
<span class="ident">len</span>: <span class="self">self</span>.<span class="ident">len</span>,
}
}
}
}
<span class="kw">impl</span> <span class="ident">Deref</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">type</span> <span class="ident">Target</span> <span class="op">=</span> <span class="ident">VariantTy</span>;
<span class="kw">fn</span> <span class="ident">deref</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">VariantTy</span> {
<span class="kw">unsafe</span> {
<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">slice</span>::<span class="ident">from_raw_parts</span>(<span class="self">self</span>.<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">u8</span>, <span class="self">self</span>.<span class="ident">len</span>))
}
}
}
<span class="kw">impl</span> <span class="ident">fmt</span>::<span class="ident">Debug</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="op">&lt;</span><span class="ident">VariantTy</span> <span class="kw">as</span> <span class="ident">fmt</span>::<span class="ident">Debug</span><span class="op">&gt;</span>::<span class="ident">fmt</span>(<span class="self">self</span>, <span class="ident">f</span>)
}
}
<span class="kw">impl</span> <span class="ident">fmt</span>::<span class="ident">Display</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="ident">f</span>.<span class="ident">write_str</span>(<span class="self">self</span>.<span class="ident">to_str</span>())
}
}
<span class="kw">impl</span> <span class="ident">Hash</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">fn</span> <span class="ident">hash</span><span class="op">&lt;</span><span class="ident">H</span>: <span class="ident">Hasher</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">state</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">H</span>) {
<span class="op">&lt;</span><span class="ident">VariantTy</span> <span class="kw">as</span> <span class="ident">Hash</span><span class="op">&gt;</span>::<span class="ident">hash</span>(<span class="self">self</span>, <span class="ident">state</span>)
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">Into</span><span class="op">&lt;</span><span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">VariantTy</span><span class="op">&gt;&gt;</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">fn</span> <span class="ident">into</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">VariantTy</span><span class="op">&gt;</span> {
<span class="ident">Cow</span>::<span class="ident">Owned</span>(<span class="self">self</span>)
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">ToGlibPtrMut</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="kw-2">mut</span> <span class="self">Self</span>;
<span class="kw">fn</span> <span class="ident">to_glib_none_mut</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="kw-2">mut</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">StashMut</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span>, <span class="self">Self</span><span class="op">&gt;</span> {
<span class="ident">StashMut</span>(<span class="self">self</span>.<span class="ident">ptr</span>, <span class="self">self</span>)
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">FromGlibPtrNone</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw">const</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_none</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span>) <span class="op">-&gt;</span> <span class="ident">VariantType</span> {
<span class="ident">VariantTy</span>::<span class="ident">from_ptr</span>(<span class="ident">ptr</span>).<span class="ident">to_owned</span>()
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">FromGlibPtrFull</span><span class="op">&lt;</span><span class="kw-2">*</span><span class="kw">const</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_glib_full</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span>) <span class="op">-&gt;</span> <span class="ident">VariantType</span> {
<span class="comment">// Don&#39;t assume ownership of a const pointer.</span>
<span class="comment">// A transfer: full annotation on a `const GVariantType*` is likely a bug.</span>
<span class="ident">VariantTy</span>::<span class="ident">from_ptr</span>(<span class="ident">ptr</span>).<span class="ident">to_owned</span>()
}
}
<span class="doccomment">/// Describes `Variant` types.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// This is a borrowed counterpart of [`VariantType`](struct.VariantType.html).</span>
<span class="doccomment">/// Essentially it&#39;s a `str` statically guaranteed to be a valid type string.</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Debug</span>, <span class="ident">PartialEq</span>, <span class="ident">Eq</span>, <span class="ident">Hash</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">VariantTy</span> {
<span class="ident">inner</span>: <span class="ident">str</span>,
}
<span class="kw">impl</span> <span class="ident">VariantTy</span> {
<span class="doccomment">/// Tries to create a `&amp;VariantTy` from a string slice.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Returns `Ok` if the string is a valid type string, `Err` otherwise.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>(<span class="ident">type_string</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="ident">VariantTy</span>, ()<span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">ptr</span> <span class="op">=</span> <span class="ident">type_string</span>.<span class="ident">as_ptr</span>();
<span class="kw">let</span> <span class="ident">limit</span> <span class="op">=</span> <span class="ident">ptr</span> <span class="kw">as</span> <span class="ident">usize</span> <span class="op">+</span> <span class="ident">type_string</span>.<span class="ident">len</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">end</span> <span class="op">=</span> <span class="number">0_usize</span>;
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">ok</span> <span class="op">=</span> <span class="ident">from_glib</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_variant_type_string_scan</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _,
<span class="ident">limit</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">end</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">usize</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw-2">mut</span> _));
<span class="kw">if</span> <span class="ident">ok</span> <span class="op">&amp;&amp;</span> <span class="ident">end</span> <span class="op">==</span> <span class="ident">limit</span> {
<span class="prelude-val">Ok</span>(<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">type_string</span>))
} <span class="kw">else</span> {
<span class="prelude-val">Err</span>(())
}
}
}
<span class="doccomment">/// Converts a type string into `&amp;VariantTy` without any checks.</span>
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_str_unchecked</span>(<span class="ident">type_string</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">VariantTy</span> {
<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">type_string</span>)
}
<span class="doccomment">/// Creates `&amp;VariantTy` with a wildcard lifetime from a `GVariantType`</span>
<span class="doccomment">/// pointer.</span>
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from_ptr</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">VariantTy</span> {
<span class="kw">let</span> <span class="ident">len</span> <span class="op">=</span> <span class="ident">glib_ffi</span>::<span class="ident">g_variant_type_get_string_length</span>(<span class="ident">ptr</span>) <span class="kw">as</span> <span class="ident">usize</span>;
<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">slice</span>::<span class="ident">from_raw_parts</span>(<span class="ident">ptr</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">u8</span>, <span class="ident">len</span>))
}
<span class="doccomment">/// Returns a `GVariantType` pointer.</span>
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">as_ptr</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span> {
<span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">as_ptr</span>() <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _
}
<span class="doccomment">/// Converts to a string slice.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">to_str</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">str</span> {
<span class="kw-2">&amp;</span><span class="self">self</span>.<span class="ident">inner</span>
}
}
<span class="kw">unsafe</span> <span class="kw">impl</span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">VariantTy</span> { }
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">ToGlibPtr</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">VariantTy</span> {
<span class="kw">type</span> <span class="ident">Storage</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="self">Self</span>;
<span class="kw">fn</span> <span class="ident">to_glib_none</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Stash</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariantType</span>, <span class="self">Self</span><span class="op">&gt;</span> {
<span class="ident">Stash</span>(<span class="self">self</span>.<span class="ident">as_ptr</span>(), <span class="self">self</span>)
}
}
<span class="kw">impl</span> <span class="ident">fmt</span>::<span class="ident">Display</span> <span class="kw">for</span> <span class="ident">VariantTy</span> {
<span class="kw">fn</span> <span class="ident">fmt</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">f</span>: <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">fmt</span>::<span class="ident">Formatter</span>) <span class="op">-&gt;</span> <span class="ident">fmt</span>::<span class="prelude-ty">Result</span> {
<span class="ident">f</span>.<span class="ident">write_str</span>(<span class="self">self</span>.<span class="ident">to_str</span>())
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span><span class="op">&gt;</span> <span class="ident">Into</span><span class="op">&lt;</span><span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">VariantTy</span><span class="op">&gt;&gt;</span> <span class="kw">for</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">VariantTy</span> {
<span class="kw">fn</span> <span class="ident">into</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">VariantTy</span><span class="op">&gt;</span> {
<span class="ident">Cow</span>::<span class="ident">Borrowed</span>(<span class="self">self</span>)
}
}
<span class="kw">impl</span> <span class="ident">ToOwned</span> <span class="kw">for</span> <span class="ident">VariantTy</span> {
<span class="kw">type</span> <span class="ident">Owned</span> <span class="op">=</span> <span class="ident">VariantType</span>;
<span class="kw">fn</span> <span class="ident">to_owned</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">VariantType</span> {
<span class="kw">unsafe</span> {
<span class="ident">VariantType</span> {
<span class="ident">ptr</span>: <span class="ident">glib_ffi</span>::<span class="ident">g_variant_type_copy</span>(<span class="self">self</span>.<span class="ident">as_ptr</span>()),
<span class="ident">len</span>: <span class="self">self</span>.<span class="ident">inner</span>.<span class="ident">len</span>(),
}
}
}
}
<span class="kw">impl</span> <span class="ident">PartialEq</span> <span class="kw">for</span> <span class="ident">VariantType</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="op">&lt;</span><span class="ident">VariantTy</span> <span class="kw">as</span> <span class="ident">PartialEq</span><span class="op">&gt;</span>::<span class="ident">eq</span>(<span class="self">self</span>, <span class="ident">other</span>)
}
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">impl_eq</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span>:<span class="ident">ty</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span>: <span class="ident">ty</span>) <span class="op">=&gt;</span> {
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span><span class="op">&gt;</span> <span class="ident">PartialEq</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="op">&lt;</span><span class="ident">VariantTy</span> <span class="kw">as</span> <span class="ident">PartialEq</span><span class="op">&gt;</span>::<span class="ident">eq</span>(<span class="self">self</span>, <span class="ident">other</span>)
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span><span class="op">&gt;</span> <span class="ident">PartialEq</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="op">&lt;</span><span class="ident">VariantTy</span> <span class="kw">as</span> <span class="ident">PartialEq</span><span class="op">&gt;</span>::<span class="ident">eq</span>(<span class="self">self</span>, <span class="ident">other</span>)
}
}
}
}
<span class="macro">impl_eq</span><span class="macro">!</span>(<span class="ident">VariantType</span>, <span class="ident">VariantTy</span>);
<span class="macro">impl_eq</span><span class="macro">!</span>(<span class="ident">VariantType</span>, <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">VariantTy</span>);
<span class="macro">impl_eq</span><span class="macro">!</span>(<span class="ident">VariantType</span>, <span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">VariantTy</span><span class="op">&gt;</span>);
<span class="macro">impl_eq</span><span class="macro">!</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">VariantTy</span>, <span class="ident">Cow</span><span class="op">&lt;</span><span class="lifetime">&#39;b</span>, <span class="ident">VariantTy</span><span class="op">&gt;</span>);
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">impl_str_eq</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span>:<span class="ident">ty</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span>: <span class="ident">ty</span>) <span class="op">=&gt;</span> {
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span><span class="op">&gt;</span> <span class="ident">PartialEq</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="self">self</span>.<span class="ident">to_str</span>().<span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="ident">other</span>[..])
}
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span><span class="op">&gt;</span> <span class="ident">PartialEq</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">rhs</span> {
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">other</span>: <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">lhs</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="self">self</span>[..].<span class="ident">eq</span>(<span class="ident">other</span>.<span class="ident">to_str</span>())
}
}
}
}
<span class="macro">impl_str_eq</span><span class="macro">!</span>(<span class="ident">VariantTy</span>, <span class="ident">str</span>);
<span class="macro">impl_str_eq</span><span class="macro">!</span>(<span class="ident">VariantTy</span>, <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span>);
<span class="macro">impl_str_eq</span><span class="macro">!</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">VariantTy</span>, <span class="ident">str</span>);
<span class="macro">impl_str_eq</span><span class="macro">!</span>(<span class="ident">VariantTy</span>, <span class="ident">String</span>);
<span class="macro">impl_str_eq</span><span class="macro">!</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">VariantTy</span>, <span class="ident">String</span>);
<span class="macro">impl_str_eq</span><span class="macro">!</span>(<span class="ident">VariantType</span>, <span class="ident">str</span>);
<span class="macro">impl_str_eq</span><span class="macro">!</span>(<span class="ident">VariantType</span>, <span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span>);
<span class="macro">impl_str_eq</span><span class="macro">!</span>(<span class="ident">VariantType</span>, <span class="ident">String</span>);
<span class="kw">impl</span> <span class="ident">Eq</span> <span class="kw">for</span> <span class="ident">VariantType</span> { }
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">test</span>)]</span>
<span class="kw">mod</span> <span class="ident">tests</span> {
<span class="kw">use</span> <span class="ident">ffi</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="kw">super</span>::<span class="kw-2">*</span>;
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">equal</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">U</span><span class="op">&gt;</span>(<span class="ident">ptr1</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>, <span class="ident">ptr2</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">U</span>) <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="ident">from_glib</span>(<span class="ident">glib_ffi</span>::<span class="ident">g_variant_type_equal</span>(<span class="ident">ptr1</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _, <span class="ident">ptr2</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _))
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">new</span>() {
<span class="kw">let</span> <span class="ident">ty</span> <span class="op">=</span> <span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="string">&quot;((iii)s)&quot;</span>).<span class="ident">unwrap</span>();
<span class="kw">unsafe</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">equal</span>(<span class="ident">ty</span>.<span class="ident">as_ptr</span>(), <span class="string">b&quot;((iii)s)\0&quot;</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">u8</span>));
}
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">new_empty</span>() {
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="string">&quot;&quot;</span>).<span class="ident">is_err</span>());
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">new_with_nul</span>() {
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="string">&quot;((iii\0)s)&quot;</span>).<span class="ident">is_err</span>());
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">new_too_short</span>() {
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="string">&quot;((iii&quot;</span>).<span class="ident">is_err</span>());
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">new_too_long</span>() {
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="string">&quot;(iii)s&quot;</span>).<span class="ident">is_err</span>());
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">eq</span>() {
<span class="kw">let</span> <span class="ident">ty1</span> <span class="op">=</span> <span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="string">&quot;((iii)s)&quot;</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">ty2</span> <span class="op">=</span> <span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="string">&quot;((iii)s)&quot;</span>).<span class="ident">unwrap</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">ty1</span>, <span class="ident">ty2</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">ty1</span>, <span class="string">&quot;((iii)s)&quot;</span>);
<span class="kw">unsafe</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">equal</span>(<span class="ident">ty1</span>.<span class="ident">as_ptr</span>(), <span class="ident">ty2</span>.<span class="ident">as_ptr</span>()));
}
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">ne</span>() {
<span class="kw">let</span> <span class="ident">ty1</span> <span class="op">=</span> <span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="string">&quot;((iii)s)&quot;</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">ty2</span> <span class="op">=</span> <span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="string">&quot;((iii)o)&quot;</span>).<span class="ident">unwrap</span>();
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">ty1</span> <span class="op">!=</span> <span class="ident">ty2</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">ty1</span> <span class="op">!=</span> <span class="string">&quot;((iii)o)&quot;</span>);
<span class="kw">unsafe</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="op">!</span><span class="ident">equal</span>(<span class="ident">ty1</span>.<span class="ident">as_ptr</span>(), <span class="ident">ty2</span>.<span class="ident">as_ptr</span>()));
}
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">from_bytes</span>() {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">ty</span> <span class="op">=</span> <span class="ident">VariantTy</span>::<span class="ident">from_ptr</span>(<span class="string">b&quot;((iii)s)&quot;</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">u8</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> _);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">ty</span>, <span class="string">&quot;((iii)s)&quot;</span>);
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">equal</span>(<span class="ident">ty</span>.<span class="ident">as_ptr</span>(), <span class="string">&quot;((iii)s)&quot;</span>.<span class="ident">as_ptr</span>()));
}
}
<span class="attribute">#[<span class="ident">test</span>]</span>
<span class="kw">fn</span> <span class="ident">to_owned</span>() {
<span class="kw">let</span> <span class="ident">ty1</span> <span class="op">=</span> <span class="ident">VariantTy</span>::<span class="ident">new</span>(<span class="string">&quot;((iii)s)&quot;</span>).<span class="ident">unwrap</span>();
<span class="kw">let</span> <span class="ident">ty2</span> <span class="op">=</span> <span class="ident">ty1</span>.<span class="ident">to_owned</span>();
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">ty1</span>, <span class="ident">ty2</span>);
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">ty2</span>, <span class="string">&quot;((iii)s)&quot;</span>);
<span class="kw">unsafe</span> {
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">equal</span>(<span class="ident">ty1</span>.<span class="ident">as_ptr</span>(), <span class="ident">ty2</span>.<span class="ident">as_ptr</span>()));
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

542
src/glib/wrapper.rs.html Normal file
View File

@@ -0,0 +1,542 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/glib-0.3.1/src/wrapper.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>wrapper.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2015-2016, The Gtk-rs Project Developers.</span>
<span class="comment">// See the COPYRIGHT file at the top-level directory of this distribution.</span>
<span class="comment">// Licensed under the MIT license, see the LICENSE file or &lt;http://opensource.org/licenses/MIT&gt;</span>
<span class="doccomment">//! `IMPL` The `glib_wrapper!` macro and miscellaneous wrapper traits.</span>
<span class="doccomment">/// Defines a wrapper type and implements the appropriate traits.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// The basic syntax is</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```ignore</span>
<span class="doccomment">/// glib_wrapper! {</span>
<span class="doccomment">/// /// Documentation</span>
<span class="doccomment">/// pub struct $name($kind&lt;$foreign&gt;);</span>
<span class="doccomment">///</span>
<span class="doccomment">/// match fn {</span>
<span class="doccomment">/// $fn_name =&gt; /* a closure-like expression */,</span>
<span class="doccomment">/// ...</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// ```</span>
<span class="doccomment">///</span>
<span class="doccomment">/// This creates a wrapper named `$name` around the foreign type `$foreign`</span>
<span class="doccomment">/// of `$kind` (one of `Boxed`, `Shared`, `Object`) using expressions from the `match fn`</span>
<span class="doccomment">/// block to implement type-specific low-level operations (the expression</span>
<span class="doccomment">/// will be evaluated in `unsafe` context).</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ### Boxed</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Boxed records with single ownership.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```ignore</span>
<span class="doccomment">/// glib_wrapper! {</span>
<span class="doccomment">/// /// Text buffer iterator</span>
<span class="doccomment">/// pub struct TextIter(Boxed&lt;ffi::GtkTextIter&gt;);</span>
<span class="doccomment">///</span>
<span class="doccomment">/// match fn {</span>
<span class="doccomment">/// copy =&gt; |ptr| ffi::gtk_text_iter_copy(ptr),</span>
<span class="doccomment">/// free =&gt; |ptr| ffi::gtk_text_iter_free(ptr),</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// ```</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `copy`: `|*const $foreign| -&gt; *mut $foreign` creates a copy of the value.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `free`: `|*mut $foreign|` frees the value.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `get_type`: `||` (optional) returns the `Type`, if any</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ### Shared</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Records with reference counted shared ownership.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```ignore</span>
<span class="doccomment">/// glib_wrapper! {</span>
<span class="doccomment">/// /// Object holding timing information for a single frame.</span>
<span class="doccomment">/// pub struct FrameTimings(Shared&lt;ffi::GdkFrameTimings&gt;);</span>
<span class="doccomment">///</span>
<span class="doccomment">/// match fn {</span>
<span class="doccomment">/// ref =&gt; |ptr| ffi::gdk_frame_timings_ref(ptr),</span>
<span class="doccomment">/// unref =&gt; |ptr| ffi::gdk_frame_timings_unref(ptr),</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// ```</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `ref`: `|*mut $foreign|` increases the refcount.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `unref`: `|*mut $foreign|` decreases the refcount.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `get_type`: `||` (optional) returns the `Type`, if any</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ### Object</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Objects -- classes and interfaces.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```ignore</span>
<span class="doccomment">/// glib_wrapper! {</span>
<span class="doccomment">/// /// Object representing an input device.</span>
<span class="doccomment">/// pub struct Device(Object&lt;ffi::GdkDevice&gt;);</span>
<span class="doccomment">///</span>
<span class="doccomment">/// match fn {</span>
<span class="doccomment">/// get_type =&gt; || ffi::gdk_device_get_type(),</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// ```</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```ignore</span>
<span class="doccomment">/// glib_wrapper! {</span>
<span class="doccomment">/// /// A container with just one child.</span>
<span class="doccomment">/// pub struct Bin(Object&lt;ffi::GtkBin&gt;): Container, Widget, Buildable;</span>
<span class="doccomment">///</span>
<span class="doccomment">/// match fn {</span>
<span class="doccomment">/// get_type =&gt; || ffi::gtk_bin_get_type(),</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// ```</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Implementing types from other crates requires specifying their FFI</span>
<span class="doccomment">/// counterparts as well:</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```ignore</span>
<span class="doccomment">/// glib_wrapper! {</span>
<span class="doccomment">/// pub struct Application(Object&lt;ffi::GtkApplication&gt;): [</span>
<span class="doccomment">/// gio::Application =&gt; gio_ffi::GApplication,</span>
<span class="doccomment">/// gio::ActionGroup =&gt; gio_ffi::GActionGroup,</span>
<span class="doccomment">/// gio::ActionMap =&gt; gio_ffi::GActionMap,</span>
<span class="doccomment">/// ];</span>
<span class="doccomment">///</span>
<span class="doccomment">/// match fn {</span>
<span class="doccomment">/// get_type =&gt; || ffi::gtk_application_get_type(),</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// ```</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `get_type: || -&gt; GType` returns the type identifier of the class or interface.</span>
<span class="attribute">#[<span class="ident">macro_export</span>]</span>
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">glib_wrapper</span> {
(
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>(<span class="ident">Boxed</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">copy</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_arg</span>:<span class="ident">ident</span><span class="op">|</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_expr</span>:<span class="ident">expr</span>,
<span class="ident">free</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_arg</span>:<span class="ident">ident</span><span class="op">|</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_expr</span>:<span class="ident">expr</span>,
}
) <span class="op">=&gt;</span> {
<span class="macro">glib_boxed_wrapper</span><span class="macro">!</span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, @<span class="ident">copy</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_expr</span>,
@<span class="ident">free</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_expr</span>);
};
(
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>(<span class="ident">Boxed</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">copy</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_arg</span>:<span class="ident">ident</span><span class="op">|</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_expr</span>:<span class="ident">expr</span>,
<span class="ident">free</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_arg</span>:<span class="ident">ident</span><span class="op">|</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_expr</span>:<span class="ident">expr</span>,
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>:<span class="ident">expr</span>,
}
) <span class="op">=&gt;</span> {
<span class="macro">glib_boxed_wrapper</span><span class="macro">!</span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, @<span class="ident">copy</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">copy_expr</span>,
@<span class="ident">free</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">free_expr</span>, @<span class="ident">get_type</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>);
};
(
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_arg</span>:<span class="ident">ident</span><span class="op">|</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_expr</span>:<span class="ident">expr</span>,
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_arg</span>:<span class="ident">ident</span><span class="op">|</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_expr</span>:<span class="ident">expr</span>,
}
) <span class="op">=&gt;</span> {
<span class="macro">glib_shared_wrapper</span><span class="macro">!</span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, @<span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_expr</span>,
@<span class="ident">unref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_expr</span>);
};
(
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>(<span class="ident">Shared</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="kw-2">ref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_arg</span>:<span class="ident">ident</span><span class="op">|</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_expr</span>:<span class="ident">expr</span>,
<span class="ident">unref</span> <span class="op">=&gt;</span> <span class="op">|</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_arg</span>:<span class="ident">ident</span><span class="op">|</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_expr</span>:<span class="ident">expr</span>,
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>:<span class="ident">expr</span>,
}
) <span class="op">=&gt;</span> {
<span class="macro">glib_shared_wrapper</span><span class="macro">!</span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, @<span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ref_expr</span>,
@<span class="ident">unref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_arg</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">unref_expr</span>, @<span class="ident">get_type</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>);
};
(
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>(<span class="ident">Object</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>:<span class="ident">expr</span>,
}
) <span class="op">=&gt;</span> {
<span class="macro">glib_object_wrapper</span><span class="macro">!</span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, @<span class="ident">get_type</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>, []);
};
(
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>(<span class="ident">Object</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span><span class="op">&gt;</span>): [$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">implements</span>:<span class="ident">tt</span>)<span class="op">+</span>];
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>:<span class="ident">expr</span>,
}
) <span class="op">=&gt;</span> {
<span class="macro">glib_object_wrapper</span><span class="macro">!</span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, @<span class="ident">get_type</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>,
@<span class="ident">implements</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">implements</span>)<span class="op">+</span>);
};
(
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>:<span class="ident">ident</span>(<span class="ident">Object</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>:<span class="ident">path</span><span class="op">&gt;</span>): $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">implements</span>:<span class="ident">path</span>),<span class="op">+</span>;
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>:<span class="ident">expr</span>,
}
) <span class="op">=&gt;</span> {
<span class="macro">glib_object_wrapper</span><span class="macro">!</span>([$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>)<span class="kw-2">*</span>] <span class="macro-nonterminal">$</span><span class="macro-nonterminal">name</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ffi_name</span>, @<span class="ident">get_type</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">get_type_expr</span>,
[$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">implements</span>),<span class="op">+</span>]);
};
}
<span class="doccomment">/// A wrapper struct.</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Wrapper</span> {
<span class="doccomment">/// Foreign type represented by the struct.</span>
<span class="kw">type</span> <span class="ident">GlibType</span>: <span class="lifetime">&#39;static</span>;
}
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">UnsafeFrom</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">from</span>(<span class="ident">t</span>: <span class="ident">T</span>) <span class="op">-&gt;</span> <span class="self">Self</span>;
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "glib";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

8204
src/glib_sys/lib.rs.html Normal file

File diff suppressed because it is too large Load Diff

2398
src/gobject_sys/lib.rs.html Normal file

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,188 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-0.2.11/src/lazy.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>lazy.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2016 lazy-static.rs Developers</span>
<span class="comment">//</span>
<span class="comment">// Licensed under the Apache License, Version 2.0, &lt;LICENSE-APACHE or</span>
<span class="comment">// http://apache.org/licenses/LICENSE-2.0&gt; or the MIT license &lt;LICENSE-MIT or</span>
<span class="comment">// http://opensource.org/licenses/MIT&gt;, at your option. This file may not be</span>
<span class="comment">// copied, modified, or distributed except according to those terms.</span>
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">std</span>;
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">std</span>::<span class="ident">prelude</span>::<span class="ident">v1</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="self">self</span>::<span class="ident">std</span>::<span class="ident">sync</span>::<span class="ident">Once</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">std</span>::<span class="ident">sync</span>::<span class="ident">ONCE_INIT</span>;
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Lazy</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">Sync</span><span class="op">&gt;</span>(<span class="kw">pub</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">T</span>, <span class="kw">pub</span> <span class="ident">Once</span>);
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">Sync</span><span class="op">&gt;</span> <span class="ident">Lazy</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="attribute">#[<span class="ident">inline</span>(<span class="ident">always</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get</span><span class="op">&lt;</span><span class="ident">F</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">f</span>: <span class="ident">F</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="ident">T</span>
<span class="kw">where</span> <span class="ident">F</span>: <span class="ident">FnOnce</span>() <span class="op">-&gt;</span> <span class="ident">T</span>
{
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">r</span> <span class="op">=</span> <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="self">self</span>.<span class="number">0</span>;
<span class="self">self</span>.<span class="number">1</span>.<span class="ident">call_once</span>(<span class="op">||</span> {
<span class="kw-2">*</span><span class="ident">r</span> <span class="op">=</span> <span class="ident">Box</span>::<span class="ident">into_raw</span>(<span class="ident">Box</span>::<span class="ident">new</span>(<span class="ident">f</span>()));
});
<span class="kw-2">&amp;</span><span class="kw-2">*</span><span class="self">self</span>.<span class="number">0</span>
}
}
}
<span class="kw">unsafe</span> <span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">Sync</span><span class="op">&gt;</span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">Lazy</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {}
<span class="attribute">#[<span class="ident">macro_export</span>]</span>
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">__lazy_static_create</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">NAME</span>:<span class="ident">ident</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>:<span class="ident">ty</span>) <span class="op">=&gt;</span> {
<span class="kw">static</span> <span class="kw-2">mut</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">NAME</span>: <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">lazy</span>::<span class="ident">Lazy</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span><span class="op">&gt;</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">lazy</span>::<span class="ident">Lazy</span>(<span class="number">0</span> <span class="kw">as</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>, <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">lazy</span>::<span class="ident">ONCE_INIT</span>);
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "lazy_static";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

534
src/lazy_static/lib.rs.html Normal file
View File

@@ -0,0 +1,534 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/lazy_static-0.2.11/src/lib.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>lib.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2016 lazy-static.rs Developers</span>
<span class="comment">//</span>
<span class="comment">// Licensed under the Apache License, Version 2.0, &lt;LICENSE-APACHE or</span>
<span class="comment">// http://apache.org/licenses/LICENSE-2.0&gt; or the MIT license &lt;LICENSE-MIT or</span>
<span class="comment">// http://opensource.org/licenses/MIT&gt;, at your option. This file may not be</span>
<span class="comment">// copied, modified, or distributed except according to those terms.</span>
<span class="doccomment">/*!
A macro for declaring lazily evaluated statics.
Using this macro, it is possible to have `static`s that require code to be
executed at runtime in order to be initialized.
This includes anything requiring heap allocations, like vectors or hash maps,
as well as anything that requires function calls to be computed.
# Syntax
```ignore
lazy_static! {
[pub] static ref NAME_1: TYPE_1 = EXPR_1;
[pub] static ref NAME_2: TYPE_2 = EXPR_2;
...
[pub] static ref NAME_N: TYPE_N = EXPR_N;
}
```
Attributes (including doc comments) are supported as well:
```rust
# #[macro_use]
# extern crate lazy_static;
# fn main() {
lazy_static! {
/// This is an example for using doc comment attributes
static ref EXAMPLE: u8 = 42;
}
# }
```
# Semantics
For a given `static ref NAME: TYPE = EXPR;`, the macro generates a unique type that
implements `Deref&lt;TYPE&gt;` and stores it in a static with name `NAME`. (Attributes end up
attaching to this type.)
On first deref, `EXPR` gets evaluated and stored internally, such that all further derefs
can return a reference to the same object. Note that this can lead to deadlocks
if you have multiple lazy statics that depend on each other in their initialization.
Apart from the lazy initialization, the resulting &quot;static ref&quot; variables
have generally the same properties as regular &quot;static&quot; variables:
- Any type in them needs to fulfill the `Sync` trait.
- If the type has a destructor, then it will not run when the process exits.
# Example
Using the macro:
```rust
#[macro_use]
extern crate lazy_static;
use std::collections::HashMap;
lazy_static! {
static ref HASHMAP: HashMap&lt;u32, &amp;&#39;static str&gt; = {
let mut m = HashMap::new();
m.insert(0, &quot;foo&quot;);
m.insert(1, &quot;bar&quot;);
m.insert(2, &quot;baz&quot;);
m
};
static ref COUNT: usize = HASHMAP.len();
static ref NUMBER: u32 = times_two(21);
}
fn times_two(n: u32) -&gt; u32 { n * 2 }
fn main() {
println!(&quot;The map has {} entries.&quot;, *COUNT);
println!(&quot;The entry for `0` is \&quot;{}\&quot;.&quot;, HASHMAP.get(&amp;0).unwrap());
println!(&quot;A expensive calculation on a static results in: {}.&quot;, *NUMBER);
}
```
# Implementation details
The `Deref` implementation uses a hidden static variable that is guarded by a atomic check on each access. On stable Rust, the macro may need to allocate each static on the heap.
*/</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">feature</span><span class="op">=</span><span class="string">&quot;spin_no_std&quot;</span>, <span class="ident">feature</span>(<span class="ident">const_fn</span>))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">feature</span><span class="op">=</span><span class="string">&quot;nightly&quot;</span>, <span class="ident">feature</span>(<span class="ident">unreachable</span>))]</span>
<span class="attribute">#![<span class="ident">doc</span>(<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://docs.rs/lazy_static/0.2.11&quot;</span>)]</span>
<span class="attribute">#![<span class="ident">no_std</span>]</span>
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">feature</span><span class="op">=</span><span class="string">&quot;nightly&quot;</span>))]</span>
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">lazy</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">feature</span><span class="op">=</span><span class="string">&quot;nightly&quot;</span>, <span class="ident">not</span>(<span class="ident">feature</span><span class="op">=</span><span class="string">&quot;spin_no_std&quot;</span>)))]</span>
<span class="attribute">#[<span class="ident">path</span><span class="op">=</span><span class="string">&quot;nightly_lazy.rs&quot;</span>]</span>
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">lazy</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">feature</span><span class="op">=</span><span class="string">&quot;nightly&quot;</span>, <span class="ident">feature</span><span class="op">=</span><span class="string">&quot;spin_no_std&quot;</span>))]</span>
<span class="attribute">#[<span class="ident">path</span><span class="op">=</span><span class="string">&quot;core_lazy.rs&quot;</span>]</span>
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">lazy</span>;
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">core</span>::<span class="ident">ops</span>::<span class="ident">Deref</span> <span class="kw">as</span> <span class="ident">__Deref</span>;
<span class="attribute">#[<span class="ident">macro_export</span>]</span>
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">__lazy_static_internal</span> {
<span class="comment">// optional visibility restrictions are wrapped in `()` to allow for</span>
<span class="comment">// explicitly passing otherwise implicit information about private items</span>
($(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">vis</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="kw">static</span> <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span>:<span class="ident">ident</span> : <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>:<span class="ident">ty</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>:<span class="ident">expr</span>; $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=&gt;</span> {
<span class="macro">__lazy_static_internal</span><span class="macro">!</span>(@<span class="ident">MAKE</span> <span class="ident">TY</span>, $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>]</span>)<span class="kw-2">*</span>, ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">vis</span>)<span class="kw-2">*</span>), <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span>);
<span class="macro">__lazy_static_internal</span><span class="macro">!</span>(@<span class="ident">TAIL</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> : <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>);
<span class="macro">lazy_static</span><span class="macro">!</span>($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>)<span class="kw-2">*</span>);
};
(@<span class="ident">TAIL</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span>:<span class="ident">ident</span> : <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>:<span class="ident">ty</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>:<span class="ident">expr</span>) <span class="op">=&gt;</span> {
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">__Deref</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> {
<span class="kw">type</span> <span class="ident">Target</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>;
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unsafe_code</span>)]</span>
<span class="kw">fn</span> <span class="ident">deref</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span> {
<span class="kw">unsafe</span> {
<span class="attribute">#[<span class="ident">inline</span>(<span class="ident">always</span>)]</span>
<span class="kw">fn</span> <span class="ident">__static_ref_initialize</span>() <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span> { <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span> }
<span class="attribute">#[<span class="ident">inline</span>(<span class="ident">always</span>)]</span>
<span class="kw">unsafe</span> <span class="kw">fn</span> <span class="ident">__stability</span>() <span class="op">-&gt;</span> <span class="kw-2">&amp;</span><span class="lifetime">&#39;static</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span> {
<span class="macro">__lazy_static_create</span><span class="macro">!</span>(<span class="ident">LAZY</span>, <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>);
<span class="ident">LAZY</span>.<span class="ident">get</span>(<span class="ident">__static_ref_initialize</span>)
}
<span class="ident">__stability</span>()
}
}
}
<span class="kw">impl</span> <span class="macro-nonterminal">$</span><span class="kw">crate</span>::<span class="macro-nonterminal">LazyStatic</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> {
<span class="kw">fn</span> <span class="ident">initialize</span>(<span class="ident">lazy</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>) {
<span class="kw">let</span> _ <span class="op">=</span> <span class="kw-2">&amp;</span><span class="kw-2">*</span><span class="kw-2">*</span><span class="ident">lazy</span>;
}
}
};
<span class="comment">// `vis` is wrapped in `()` to prevent parsing ambiguity</span>
(@<span class="ident">MAKE</span> <span class="ident">TY</span>, $(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="kw-2">*</span>, ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">vis</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>), <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span>:<span class="ident">ident</span>) <span class="op">=&gt;</span> {
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">missing_copy_implementations</span>)]</span>
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">non_camel_case_types</span>)]</span>
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">dead_code</span>)]</span>
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>]</span>)<span class="op">*</span>
$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">vis</span>)<span class="op">*</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> {<span class="ident">__private_field</span>: ()}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">vis</span>)<span class="op">*</span> <span class="kw">static</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> {<span class="ident">__private_field</span>: ()};
};
() <span class="op">=&gt;</span> ()
}
<span class="attribute">#[<span class="ident">macro_export</span>]</span>
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">lazy_static</span> {
($(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span>:<span class="ident">ident</span> : <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>:<span class="ident">ty</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>:<span class="ident">expr</span>; $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=&gt;</span> {
<span class="comment">// use `()` to explicitly forward the information about private items</span>
<span class="macro">__lazy_static_internal</span><span class="macro">!</span>($(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>]</span>)<span class="op">*</span> () <span class="kw">static</span> <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> : <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>; $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>)<span class="kw-2">*</span>);
};
($(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span> <span class="kw">pub</span> <span class="kw">static</span> <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span>:<span class="ident">ident</span> : <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>:<span class="ident">ty</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>:<span class="ident">expr</span>; $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=&gt;</span> {
<span class="macro">__lazy_static_internal</span><span class="macro">!</span>($(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>]</span>)<span class="op">*</span> (<span class="kw">pub</span>) <span class="kw">static</span> <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> : <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>; $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>)<span class="kw-2">*</span>);
};
($(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span> <span class="kw">pub</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">vis</span>:<span class="ident">tt</span>)<span class="op">+</span>) <span class="kw">static</span> <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span>:<span class="ident">ident</span> : <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span>:<span class="ident">ty</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>:<span class="ident">expr</span>; $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=&gt;</span> {
<span class="macro">__lazy_static_internal</span><span class="macro">!</span>($(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>]</span>)<span class="op">*</span> (<span class="kw">pub</span> ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">vis</span>)<span class="op">+</span>)) <span class="kw">static</span> <span class="kw-2">ref</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">N</span> : <span class="macro-nonterminal">$</span><span class="macro-nonterminal">T</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">e</span>; $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">t</span>)<span class="kw-2">*</span>);
};
() <span class="op">=&gt;</span> ()
}
<span class="doccomment">/// Support trait for enabling a few common operation on lazy static values.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// This is implemented by each defined lazy static, and</span>
<span class="doccomment">/// used by the free functions in this crate.</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">LazyStatic</span> {
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">fn</span> <span class="ident">initialize</span>(<span class="ident">lazy</span>: <span class="kw-2">&amp;</span><span class="self">Self</span>);
}
<span class="doccomment">/// Takes a shared reference to a lazy static and initializes</span>
<span class="doccomment">/// it if it has not been already.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// This can be used to control the initialization point of a lazy static.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Example:</span>
<span class="doccomment">///</span>
<span class="doccomment">/// ```rust</span>
<span class="doccomment">/// #[macro_use]</span>
<span class="doccomment">/// extern crate lazy_static;</span>
<span class="doccomment">///</span>
<span class="doccomment">/// lazy_static! {</span>
<span class="doccomment">/// static ref BUFFER: Vec&lt;u8&gt; = (0..65537).collect();</span>
<span class="doccomment">/// }</span>
<span class="doccomment">///</span>
<span class="doccomment">/// fn main() {</span>
<span class="doccomment">/// lazy_static::initialize(&amp;BUFFER);</span>
<span class="doccomment">///</span>
<span class="doccomment">/// // ...</span>
<span class="doccomment">/// work_with_initialized_data(&amp;BUFFER);</span>
<span class="doccomment">/// }</span>
<span class="doccomment">/// # fn work_with_initialized_data(_: &amp;[u8]) {}</span>
<span class="doccomment">/// ```</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">initialize</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">LazyStatic</span><span class="op">&gt;</span>(<span class="ident">lazy</span>: <span class="kw-2">&amp;</span><span class="ident">T</span>) {
<span class="ident">LazyStatic</span>::<span class="ident">initialize</span>(<span class="ident">lazy</span>);
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "lazy_static";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

412
src/libc/dox.rs.html Normal file
View File

@@ -0,0 +1,412 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.36/src/dox.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>dox.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
<link rel="shortcut icon" href="https://doc.rust-lang.org/favicon.ico">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<a href='../../libc/index.html'><img src='https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png' alt='logo' width='100'></a>
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
</pre><pre class="rust ">
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">imp</span>::<span class="kw-2">*</span>;
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">dox</span>))]</span>
<span class="kw">mod</span> <span class="ident">imp</span> {
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">core</span>::<span class="ident">option</span>::<span class="prelude-ty">Option</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">core</span>::<span class="ident">clone</span>::<span class="ident">Clone</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">core</span>::<span class="ident">marker</span>::<span class="ident">Copy</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">core</span>::<span class="ident">mem</span>;
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">dox</span>)]</span>
<span class="kw">mod</span> <span class="ident">imp</span> {
<span class="kw">pub</span> <span class="kw">enum</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="prelude-val">Some</span>(<span class="ident">T</span>),
<span class="prelude-val">None</span>,
}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">Copy</span><span class="op">&gt;</span> <span class="ident">Copy</span> <span class="kw">for</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span>: <span class="ident">Clone</span><span class="op">&gt;</span> <span class="ident">Clone</span> <span class="kw">for</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> {
<span class="kw">fn</span> <span class="ident">clone</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> { <span class="kw">loop</span> {} }
}
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Clone</span> {
<span class="kw">fn</span> <span class="ident">clone</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="self">Self</span>;
}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;copy&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Copy</span> {}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;freeze&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Freeze</span> {}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;sync&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Sync</span> {}
<span class="kw">impl</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span> <span class="ident">Sync</span> <span class="kw">for</span> <span class="ident">T</span> {}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;sized&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Sized</span> {}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">each_int</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span>:<span class="ident">ident</span>) <span class="op">=&gt;</span> (
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span><span class="op">!</span>(<span class="ident">u8</span>);
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span><span class="op">!</span>(<span class="ident">u16</span>);
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span><span class="op">!</span>(<span class="ident">u32</span>);
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span><span class="op">!</span>(<span class="ident">u64</span>);
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span><span class="op">!</span>(<span class="ident">usize</span>);
<span class="macro">each_signed_int</span><span class="macro">!</span>(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span>);
)
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">each_signed_int</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span>:<span class="ident">ident</span>) <span class="op">=&gt;</span> (
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span><span class="op">!</span>(<span class="ident">i8</span>);
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span><span class="op">!</span>(<span class="ident">i16</span>);
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span><span class="op">!</span>(<span class="ident">i32</span>);
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span><span class="op">!</span>(<span class="ident">i64</span>);
<span class="macro-nonterminal">$</span><span class="macro-nonterminal">mac</span><span class="op">!</span>(<span class="ident">isize</span>);
)
}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;div&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Div</span><span class="op">&lt;</span><span class="ident">RHS</span><span class="op">&gt;</span> {
<span class="kw">type</span> <span class="ident">Output</span>;
<span class="kw">fn</span> <span class="ident">div</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="ident">RHS</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="ident">Output</span>;
}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;shl&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Shl</span><span class="op">&lt;</span><span class="ident">RHS</span><span class="op">&gt;</span> {
<span class="kw">type</span> <span class="ident">Output</span>;
<span class="kw">fn</span> <span class="ident">shl</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="ident">RHS</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="ident">Output</span>;
}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;mul&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Mul</span><span class="op">&lt;</span><span class="ident">RHS</span><span class="op">=</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">type</span> <span class="ident">Output</span>;
<span class="kw">fn</span> <span class="ident">mul</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="ident">RHS</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="ident">Output</span>;
}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;sub&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Sub</span><span class="op">&lt;</span><span class="ident">RHS</span><span class="op">=</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">type</span> <span class="ident">Output</span>;
<span class="kw">fn</span> <span class="ident">sub</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="ident">RHS</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="ident">Output</span>;
}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;bitor&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Bitor</span><span class="op">&lt;</span><span class="ident">RHS</span><span class="op">=</span><span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">type</span> <span class="ident">Output</span>;
<span class="kw">fn</span> <span class="ident">bitor</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="ident">RHS</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="ident">Output</span>;
}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;neg&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Neg</span> {
<span class="kw">type</span> <span class="ident">Output</span>;
<span class="kw">fn</span> <span class="ident">neg</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="ident">Output</span>;
}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;not&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Not</span> {
<span class="kw">type</span> <span class="ident">Output</span>;
<span class="kw">fn</span> <span class="ident">not</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="ident">Output</span>;
}
<span class="attribute">#[<span class="ident">lang</span> <span class="op">=</span> <span class="string">&quot;add&quot;</span>]</span>
<span class="kw">pub</span> <span class="kw">trait</span> <span class="ident">Add</span><span class="op">&lt;</span><span class="ident">RHS</span> <span class="op">=</span> <span class="self">Self</span><span class="op">&gt;</span> {
<span class="kw">type</span> <span class="ident">Output</span>;
<span class="kw">fn</span> <span class="ident">add</span>(<span class="self">self</span>, <span class="ident">r</span>: <span class="ident">RHS</span>) <span class="op">-&gt;</span> <span class="self">Self</span>::<span class="ident">Output</span>;
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">impl_traits</span> {
($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>:<span class="ident">ident</span>)<span class="kw-2">*</span>) <span class="op">=&gt;</span> ($(
<span class="kw">impl</span> <span class="ident">Div</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> {
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>;
<span class="kw">fn</span> <span class="ident">div</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> { <span class="self">self</span> <span class="op">/</span> <span class="ident">rhs</span> }
}
<span class="kw">impl</span> <span class="ident">Shl</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> {
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>;
<span class="kw">fn</span> <span class="ident">shl</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> { <span class="self">self</span> <span class="op">&lt;&lt;</span> <span class="ident">rhs</span> }
}
<span class="kw">impl</span> <span class="ident">Mul</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> {
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>;
<span class="kw">fn</span> <span class="ident">mul</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> { <span class="self">self</span> <span class="op">*</span> <span class="ident">rhs</span> }
}
<span class="kw">impl</span> <span class="ident">Sub</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> {
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>;
<span class="kw">fn</span> <span class="ident">sub</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> { <span class="self">self</span> <span class="op">-</span> <span class="ident">rhs</span> }
}
<span class="kw">impl</span> <span class="ident">Bitor</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> {
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>;
<span class="kw">fn</span> <span class="ident">bitor</span>(<span class="self">self</span>, <span class="ident">rhs</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> { <span class="self">self</span> <span class="op">|</span> <span class="ident">rhs</span> }
}
<span class="kw">impl</span> <span class="ident">Neg</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> {
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>;
<span class="kw">fn</span> <span class="ident">neg</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> { <span class="op">-</span><span class="self">self</span> }
}
<span class="kw">impl</span> <span class="ident">Not</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> {
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>;
<span class="kw">fn</span> <span class="ident">not</span>(<span class="self">self</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> { <span class="op">!</span><span class="self">self</span> }
}
<span class="kw">impl</span> <span class="ident">Add</span><span class="op">&lt;</span><span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> {
<span class="kw">type</span> <span class="ident">Output</span> <span class="op">=</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>;
<span class="kw">fn</span> <span class="ident">add</span>(<span class="self">self</span>, <span class="ident">other</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> { <span class="self">self</span> <span class="op">+</span> <span class="ident">other</span> }
}
)<span class="kw-2">*</span>)
}
<span class="macro">each_int</span><span class="macro">!</span>(<span class="ident">impl_traits</span>);
<span class="kw">pub</span> <span class="kw">mod</span> <span class="ident">mem</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">size_of_val</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span>(_: <span class="kw-2">&amp;</span><span class="ident">T</span>) <span class="op">-&gt;</span> <span class="ident">usize</span> { <span class="number">4</span> }
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">size_of</span><span class="op">&lt;</span><span class="ident">T</span><span class="op">&gt;</span>(_: <span class="kw-2">&amp;</span><span class="ident">T</span>) <span class="op">-&gt;</span> <span class="ident">usize</span> { <span class="number">4</span> }
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "libc";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

712
src/libc/lib.rs.html Normal file
View File

@@ -0,0 +1,712 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.36/src/lib.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>lib.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
<link rel="shortcut icon" href="https://doc.rust-lang.org/favicon.ico">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<a href='../../libc/index.html'><img src='https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png' alt='logo' width='100'></a>
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
</pre><pre class="rust ">
<span class="comment">// Copyright 2012-2015 The Rust Project Developers. See the COPYRIGHT</span>
<span class="comment">// file at the top-level directory of this distribution and at</span>
<span class="comment">// http://rust-lang.org/COPYRIGHT.</span>
<span class="comment">//</span>
<span class="comment">// Licensed under the Apache License, Version 2.0 &lt;LICENSE-APACHE or</span>
<span class="comment">// http://www.apache.org/licenses/LICENSE-2.0&gt; or the MIT license</span>
<span class="comment">// &lt;LICENSE-MIT or http://opensource.org/licenses/MIT&gt;, at your</span>
<span class="comment">// option. This file may not be copied, modified, or distributed</span>
<span class="comment">// except according to those terms.</span>
<span class="doccomment">//! Crate docs</span>
<span class="attribute">#![<span class="ident">allow</span>(<span class="ident">bad_style</span>, <span class="ident">overflowing_literals</span>, <span class="ident">improper_ctypes</span>)]</span>
<span class="attribute">#![<span class="ident">crate_type</span> <span class="op">=</span> <span class="string">&quot;rlib&quot;</span>]</span>
<span class="attribute">#![<span class="ident">crate_name</span> <span class="op">=</span> <span class="string">&quot;libc&quot;</span>]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">dox</span>, <span class="ident">feature</span>(<span class="ident">no_core</span>, <span class="ident">lang_items</span>))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">dox</span>, <span class="ident">no_core</span>)]</span>
<span class="attribute">#![<span class="ident">doc</span>(<span class="ident">html_logo_url</span> <span class="op">=</span> <span class="string">&quot;https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png&quot;</span>,
<span class="ident">html_favicon_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/favicon.ico&quot;</span>)]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;linux&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86_64&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/x86_64-unknown-linux-gnu&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;linux&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/i686-unknown-linux-gnu&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;linux&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;arm&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/arm-unknown-linux-gnueabihf&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;linux&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;mips&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/mips-unknown-linux-gnu&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;linux&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;aarch64&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/aarch64-unknown-linux-gnu&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;linux&quot;</span>, <span class="ident">target_env</span> <span class="op">=</span> <span class="string">&quot;musl&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/x86_64-unknown-linux-musl&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;macos&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86_64&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/x86_64-apple-darwin&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;macos&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/i686-apple-darwin&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">windows</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86_64&quot;</span>, <span class="ident">target_env</span> <span class="op">=</span> <span class="string">&quot;gnu&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/x86_64-pc-windows-gnu&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">windows</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>, <span class="ident">target_env</span> <span class="op">=</span> <span class="string">&quot;gnu&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/i686-pc-windows-gnu&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">windows</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86_64&quot;</span>, <span class="ident">target_env</span> <span class="op">=</span> <span class="string">&quot;msvc&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/x86_64-pc-windows-msvc&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">windows</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>, <span class="ident">target_env</span> <span class="op">=</span> <span class="string">&quot;msvc&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/i686-pc-windows-msvc&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;android&quot;</span>, <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/arm-linux-androideabi&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;freebsd&quot;</span>, <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/x86_64-unknown-freebsd&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;openbsd&quot;</span>, <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/x86_64-unknown-openbsd&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;bitrig&quot;</span>, <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/x86_64-unknown-bitrig&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;netbsd&quot;</span>, <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/x86_64-unknown-netbsd&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;dragonfly&quot;</span>, <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/x86_64-unknown-dragonfly&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;emscripten&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;asmjs&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/asmjs-unknown-emscripten&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;emscripten&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;wasm32&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/wasm32-unknown-emscripten&quot;</span>
))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;linux&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;xparc64&quot;</span>), <span class="ident">doc</span>(
<span class="ident">html_root_url</span> <span class="op">=</span> <span class="string">&quot;https://doc.rust-lang.org/libc/sparc64-unknown-linux-gnu&quot;</span>
))]</span>
<span class="comment">// Attributes needed when building as part of the standard library</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;stdbuild&quot;</span>, <span class="ident">feature</span>(<span class="ident">no_std</span>, <span class="ident">staged_api</span>, <span class="ident">custom_attribute</span>, <span class="ident">cfg_target_vendor</span>))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;stdbuild&quot;</span>, <span class="ident">feature</span>(<span class="ident">link_cfg</span>))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;stdbuild&quot;</span>, <span class="ident">no_std</span>)]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;stdbuild&quot;</span>, <span class="ident">staged_api</span>)]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;stdbuild&quot;</span>, <span class="ident">allow</span>(<span class="ident">warnings</span>))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;stdbuild&quot;</span>, <span class="ident">unstable</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;libc&quot;</span>,
<span class="ident">reason</span> <span class="op">=</span> <span class="string">&quot;use `libc` from crates.io&quot;</span>,
<span class="ident">issue</span> <span class="op">=</span> <span class="string">&quot;27783&quot;</span>))]</span>
<span class="attribute">#![<span class="ident">cfg_attr</span>(<span class="ident">not</span>(<span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;use_std&quot;</span>), <span class="ident">no_std</span>)]</span>
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">not</span>(<span class="ident">dox</span>), <span class="ident">feature</span> <span class="op">=</span> <span class="string">&quot;use_std&quot;</span>))]</span>
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">std</span> <span class="kw">as</span> <span class="ident">core</span>;
<span class="attribute">#[<span class="ident">macro_use</span>]</span> <span class="kw">mod</span> <span class="ident">macros</span>;
<span class="kw">mod</span> <span class="ident">dox</span>;
<span class="macro">cfg_if</span><span class="macro">!</span> {
<span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;wasm32&quot;</span>, <span class="ident">not</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;emscripten&quot;</span>)))]</span> {
<span class="comment">// empty ...</span>
} <span class="kw">else</span> {
<span class="comment">// Use repr(u8) as LLVM expects `void*` to be the same as `i8*` to help enable</span>
<span class="comment">// more optimization opportunities around it recognizing things like</span>
<span class="comment">// malloc/free.</span>
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">u8</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">c_void</span> {
<span class="comment">// Two dummy variants so the #[repr] attribute can be used.</span>
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="ident">__variant1</span>,
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="ident">__variant2</span>,
}
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">int8_t</span> <span class="op">=</span> <span class="ident">i8</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">int16_t</span> <span class="op">=</span> <span class="ident">i16</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">int32_t</span> <span class="op">=</span> <span class="ident">i32</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">int64_t</span> <span class="op">=</span> <span class="ident">i64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">uint8_t</span> <span class="op">=</span> <span class="ident">u8</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">uint16_t</span> <span class="op">=</span> <span class="ident">u16</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">uint32_t</span> <span class="op">=</span> <span class="ident">u32</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">uint64_t</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_schar</span> <span class="op">=</span> <span class="ident">i8</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_uchar</span> <span class="op">=</span> <span class="ident">u8</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_short</span> <span class="op">=</span> <span class="ident">i16</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_ushort</span> <span class="op">=</span> <span class="ident">u16</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_int</span> <span class="op">=</span> <span class="ident">i32</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_uint</span> <span class="op">=</span> <span class="ident">u32</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_float</span> <span class="op">=</span> <span class="ident">f32</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_double</span> <span class="op">=</span> <span class="ident">f64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_longlong</span> <span class="op">=</span> <span class="ident">i64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_ulonglong</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">intmax_t</span> <span class="op">=</span> <span class="ident">i64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">uintmax_t</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">size_t</span> <span class="op">=</span> <span class="ident">usize</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">ptrdiff_t</span> <span class="op">=</span> <span class="ident">isize</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">intptr_t</span> <span class="op">=</span> <span class="ident">isize</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">uintptr_t</span> <span class="op">=</span> <span class="ident">usize</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">ssize_t</span> <span class="op">=</span> <span class="ident">isize</span>;
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">FILE</span> {}
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">fpos_t</span> {} <span class="comment">// TODO: fill this out with a struct</span>
<span class="kw">extern</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">isalnum</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">isalpha</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">iscntrl</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">isdigit</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">isgraph</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">islower</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">isprint</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">ispunct</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">isspace</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">isupper</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">isxdigit</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">tolower</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">toupper</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;macos&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>),
<span class="ident">link_name</span> <span class="op">=</span> <span class="string">&quot;fopen$UNIX2003&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fopen</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>,
<span class="ident">mode</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>;
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;macos&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>),
<span class="ident">link_name</span> <span class="op">=</span> <span class="string">&quot;freopen$UNIX2003&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">freopen</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">mode</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>,
<span class="ident">file</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fflush</span>(<span class="ident">file</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fclose</span>(<span class="ident">file</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">remove</span>(<span class="ident">filename</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">rename</span>(<span class="ident">oldname</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">newname</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">tmpfile</span>() <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">setvbuf</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>,
<span class="ident">buffer</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>,
<span class="ident">mode</span>: <span class="ident">c_int</span>,
<span class="ident">size</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">setbuf</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>, <span class="ident">buf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">getchar</span>() <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">putchar</span>(<span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fgetc</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fgets</span>(<span class="ident">buf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">n</span>: <span class="ident">c_int</span>, <span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fputc</span>(<span class="ident">c</span>: <span class="ident">c_int</span>, <span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;macos&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>),
<span class="ident">link_name</span> <span class="op">=</span> <span class="string">&quot;fputs$UNIX2003&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fputs</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>)<span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">puts</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">ungetc</span>(<span class="ident">c</span>: <span class="ident">c_int</span>, <span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fread</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>,
<span class="ident">size</span>: <span class="ident">size_t</span>,
<span class="ident">nobj</span>: <span class="ident">size_t</span>,
<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>)
<span class="op">-&gt;</span> <span class="ident">size_t</span>;
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;macos&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>),
<span class="ident">link_name</span> <span class="op">=</span> <span class="string">&quot;fwrite$UNIX2003&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fwrite</span>(<span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_void</span>,
<span class="ident">size</span>: <span class="ident">size_t</span>,
<span class="ident">nobj</span>: <span class="ident">size_t</span>,
<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>)
<span class="op">-&gt;</span> <span class="ident">size_t</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fseek</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>, <span class="ident">offset</span>: <span class="ident">c_long</span>, <span class="ident">whence</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">ftell</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>) <span class="op">-&gt;</span> <span class="ident">c_long</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">rewind</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>);
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;netbsd&quot;</span>, <span class="ident">link_name</span> <span class="op">=</span> <span class="string">&quot;__fgetpos50&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fgetpos</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>, <span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">fpos_t</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;netbsd&quot;</span>, <span class="ident">link_name</span> <span class="op">=</span> <span class="string">&quot;__fsetpos50&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">fsetpos</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>, <span class="ident">ptr</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">fpos_t</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">feof</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">ferror</span>(<span class="ident">stream</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">FILE</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">perror</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">atoi</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;macos&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>),
<span class="ident">link_name</span> <span class="op">=</span> <span class="string">&quot;strtod$UNIX2003&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strtod</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">endp</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">c_double</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strtol</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>,
<span class="ident">endp</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">base</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_long</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strtoul</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">endp</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>,
<span class="ident">base</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_ulong</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">calloc</span>(<span class="ident">nobj</span>: <span class="ident">size_t</span>, <span class="ident">size</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">malloc</span>(<span class="ident">size</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">realloc</span>(<span class="ident">p</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>, <span class="ident">size</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">free</span>(<span class="ident">p</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">abort</span>() <span class="op">-&gt;</span> <span class="op">!</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">exit</span>(<span class="ident">status</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="op">!</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">_exit</span>(<span class="ident">status</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="op">!</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">atexit</span>(<span class="ident">cb</span>: <span class="kw">extern</span> <span class="kw">fn</span>()) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;macos&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>),
<span class="ident">link_name</span> <span class="op">=</span> <span class="string">&quot;system$UNIX2003&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">system</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">getenv</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strcpy</span>(<span class="ident">dst</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strncpy</span>(<span class="ident">dst</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">n</span>: <span class="ident">size_t</span>)
<span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strcat</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strncat</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">n</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strcmp</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strncmp</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">n</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strcoll</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strchr</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strrchr</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">c</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strspn</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">size_t</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strcspn</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">size_t</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strdup</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strpbrk</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strstr</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strlen</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">size_t</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strnlen</span>(<span class="ident">cs</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">maxlen</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="ident">size_t</span>;
<span class="attribute">#[<span class="ident">cfg_attr</span>(<span class="ident">all</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;macos&quot;</span>, <span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86&quot;</span>),
<span class="ident">link_name</span> <span class="op">=</span> <span class="string">&quot;strerror$UNIX2003&quot;</span>)]</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strerror</span>(<span class="ident">n</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strtok</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">t</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">strxfrm</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">n</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="ident">size_t</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">wcslen</span>(<span class="ident">buf</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">wchar_t</span>) <span class="op">-&gt;</span> <span class="ident">size_t</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">wcstombs</span>(<span class="ident">dest</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">wchar_t</span>, <span class="ident">n</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> ::<span class="ident">size_t</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">memchr</span>(<span class="ident">cx</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_void</span>, <span class="ident">c</span>: <span class="ident">c_int</span>, <span class="ident">n</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">memcmp</span>(<span class="ident">cx</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_void</span>, <span class="ident">ct</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_void</span>, <span class="ident">n</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">memcpy</span>(<span class="ident">dest</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>, <span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_void</span>, <span class="ident">n</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">memmove</span>(<span class="ident">dest</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>, <span class="ident">src</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_void</span>, <span class="ident">n</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">memset</span>(<span class="ident">dest</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>, <span class="ident">c</span>: <span class="ident">c_int</span>, <span class="ident">n</span>: <span class="ident">size_t</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_void</span>;
}
<span class="comment">// These are all inline functions on android, so they end up just being entirely</span>
<span class="comment">// missing on that platform.</span>
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;android&quot;</span>))]</span>
<span class="kw">extern</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">abs</span>(<span class="ident">i</span>: <span class="ident">c_int</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">atof</span>(<span class="ident">s</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">c_double</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">labs</span>(<span class="ident">i</span>: <span class="ident">c_long</span>) <span class="op">-&gt;</span> <span class="ident">c_long</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">rand</span>() <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">srand</span>(<span class="ident">seed</span>: <span class="ident">c_uint</span>);
}
}
}
<span class="macro">cfg_if</span><span class="macro">!</span> {
<span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">windows</span>)]</span> {
<span class="kw">mod</span> <span class="ident">windows</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">windows</span>::<span class="kw-2">*</span>;
} <span class="kw">else</span> <span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;redox&quot;</span>)]</span> {
<span class="kw">mod</span> <span class="ident">redox</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">redox</span>::<span class="kw-2">*</span>;
} <span class="kw">else</span> <span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;cloudabi&quot;</span>)]</span> {
<span class="kw">mod</span> <span class="ident">cloudabi</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">cloudabi</span>::<span class="kw-2">*</span>;
} <span class="kw">else</span> <span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">target_os</span> <span class="op">=</span> <span class="string">&quot;fuchsia&quot;</span>)]</span> {
<span class="kw">mod</span> <span class="ident">fuchsia</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">fuchsia</span>::<span class="kw-2">*</span>;
} <span class="kw">else</span> <span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">unix</span>)]</span> {
<span class="kw">mod</span> <span class="ident">unix</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">unix</span>::<span class="kw-2">*</span>;
} <span class="kw">else</span> {
<span class="comment">// Unknown target_family</span>
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "libc";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

252
src/libc/macros.rs.html Normal file
View File

@@ -0,0 +1,252 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.36/src/macros.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>macros.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
<link rel="shortcut icon" href="https://doc.rust-lang.org/favicon.ico">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<a href='../../libc/index.html'><img src='https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png' alt='logo' width='100'></a>
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
</pre><pre class="rust ">
<span class="doccomment">/// A macro for defining #[cfg] if-else statements.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// This is similar to the `if/elif` C preprocessor macro by allowing definition</span>
<span class="doccomment">/// of a cascade of `#[cfg]` cases, emitting the implementation which matches</span>
<span class="doccomment">/// first.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// This allows you to conveniently provide a long list #[cfg]&#39;d blocks of code</span>
<span class="doccomment">/// without having to rewrite each clause multiple times.</span>
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">cfg_if</span> {
($(
<span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>:<span class="ident">meta</span>),<span class="kw-2">*</span>)]</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">it</span>:<span class="ident">item</span>)<span class="op">*</span> }
) <span class="kw">else</span> <span class="op">*</span> <span class="kw">else</span> {
$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">it2</span>:<span class="ident">item</span>)<span class="op">*</span>
}) <span class="op">=&gt;</span> {
<span class="macro">__cfg_if_items</span><span class="macro">!</span> {
() ;
$( ( ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">meta</span>),<span class="kw-2">*</span>) ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">it</span>)<span class="kw-2">*</span>) ), )<span class="op">*</span>
( () ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">it2</span>)<span class="kw-2">*</span>) ),
}
}
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">__cfg_if_items</span> {
(($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">not</span>:<span class="ident">meta</span>,)<span class="kw-2">*</span>) ; ) <span class="op">=&gt;</span> {};
(($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">not</span>:<span class="ident">meta</span>,)<span class="kw-2">*</span>) ; ( ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">m</span>:<span class="ident">meta</span>),<span class="kw-2">*</span>) ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">it</span>:<span class="ident">item</span>)<span class="kw-2">*</span>) ), $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>:<span class="ident">tt</span>)<span class="kw-2">*</span>) <span class="op">=&gt;</span> {
<span class="macro">__cfg_if_apply</span><span class="macro">!</span> { <span class="ident">cfg</span>(<span class="ident">all</span>(<span class="ident">not</span>(<span class="ident">any</span>($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">not</span>),<span class="kw-2">*</span>)), $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">m</span>,)<span class="kw-2">*</span>)), $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">it</span>)<span class="op">*</span> }
<span class="macro">__cfg_if_items</span><span class="macro">!</span> { ($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">not</span>,)<span class="op">*</span> $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">m</span>,)<span class="kw-2">*</span>) ; $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">rest</span>)<span class="op">*</span> }
}
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">__cfg_if_apply</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">m</span>:<span class="ident">meta</span>, $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">it</span>:<span class="ident">item</span>)<span class="kw-2">*</span>) <span class="op">=&gt;</span> {
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">m</span>]</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">it</span>)<span class="op">*</span>
}
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">s</span> {
($($(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>:<span class="ident">meta</span>]</span>)<span class="op">*</span> <span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>:<span class="ident">ident</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">field</span>:<span class="ident">tt</span>)<span class="op">*</span> })<span class="kw-2">*</span>) <span class="op">=&gt;</span> ($(
<span class="macro">__item</span><span class="macro">!</span> {
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
$(<span class="attribute">#[<span class="macro-nonterminal">$</span><span class="macro-nonterminal">attr</span>]</span>)<span class="op">*</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> { $(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">field</span>)<span class="op">*</span> }
}
<span class="kw">impl</span> ::<span class="ident">dox</span>::<span class="ident">Copy</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> {}
<span class="kw">impl</span> ::<span class="ident">dox</span>::<span class="ident">Clone</span> <span class="kw">for</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> {
<span class="kw">fn</span> <span class="ident">clone</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span> { <span class="kw-2">*</span><span class="self">self</span> }
}
)<span class="kw-2">*</span>)
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">f</span> {
($(<span class="kw">pub</span> <span class="kw">fn</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>:<span class="ident">ident</span>($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">arg</span>:<span class="ident">ident</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">argty</span>:<span class="ident">ty</span>),<span class="kw-2">*</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ret</span>:<span class="ident">ty</span> {
$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">body</span>:<span class="ident">stmt</span>);<span class="op">*</span>
})<span class="kw-2">*</span>) <span class="op">=&gt;</span> ($(
<span class="attribute">#[<span class="ident">inline</span>]</span>
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">not</span>(<span class="ident">dox</span>))]</span>
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">extern</span> <span class="kw">fn</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">arg</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">argty</span>),<span class="kw-2">*</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ret</span> {
$(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">body</span>);<span class="op">*</span>
}
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">dox</span>)]</span>
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">dead_code</span>)]</span>
<span class="kw">pub</span> <span class="kw">unsafe</span> <span class="kw">extern</span> <span class="kw">fn</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>($(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">arg</span>: <span class="macro-nonterminal">$</span><span class="macro-nonterminal">argty</span>),<span class="kw-2">*</span>) <span class="op">-&gt;</span> <span class="macro-nonterminal">$</span><span class="macro-nonterminal">ret</span> {
<span class="kw">loop</span> {}
}
)<span class="kw-2">*</span>)
}
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">__item</span> {
(<span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>:<span class="ident">item</span>) <span class="op">=&gt;</span> (<span class="macro-nonterminal">$</span><span class="macro-nonterminal">i</span>)
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "libc";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

1998
src/libc/unix/mod.rs.html Normal file

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

View File

@@ -0,0 +1,280 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.36/src/unix/notbsd/linux/other/b64/mod.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>mod.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../../../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../../../../../main.css">
<link rel="shortcut icon" href="https://doc.rust-lang.org/favicon.ico">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<a href='../../../../../../../libc/index.html'><img src='https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png' alt='logo' width='100'></a>
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
<span id="72">72</span>
<span id="73">73</span>
<span id="74">74</span>
<span id="75">75</span>
<span id="76">76</span>
<span id="77">77</span>
<span id="78">78</span>
<span id="79">79</span>
<span id="80">80</span>
<span id="81">81</span>
<span id="82">82</span>
<span id="83">83</span>
<span id="84">84</span>
<span id="85">85</span>
</pre><pre class="rust ">
<span class="doccomment">//! 64-bit specific definitions for linux-like values</span>
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">clock_t</span> <span class="op">=</span> <span class="ident">i64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">time_t</span> <span class="op">=</span> <span class="ident">i64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">ino_t</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">off_t</span> <span class="op">=</span> <span class="ident">i64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">blkcnt_t</span> <span class="op">=</span> <span class="ident">i64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">__fsword_t</span> <span class="op">=</span> <span class="ident">i64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">shmatt_t</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">msgqnum_t</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">msglen_t</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">fsblkcnt_t</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">fsfilcnt_t</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">rlim_t</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="macro">s</span><span class="macro">!</span> {
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">sigset_t</span> {
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">target_pointer_width</span> <span class="op">=</span> <span class="string">&quot;32&quot;</span>)]</span>
<span class="ident">__val</span>: [<span class="ident">u32</span>; <span class="number">32</span>],
<span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">target_pointer_width</span> <span class="op">=</span> <span class="string">&quot;64&quot;</span>)]</span>
<span class="ident">__val</span>: [<span class="ident">u64</span>; <span class="number">16</span>],
}
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">sysinfo</span> {
<span class="kw">pub</span> <span class="ident">uptime</span>: <span class="ident">i64</span>,
<span class="kw">pub</span> <span class="ident">loads</span>: [<span class="ident">u64</span>; <span class="number">3</span>],
<span class="kw">pub</span> <span class="ident">totalram</span>: <span class="ident">u64</span>,
<span class="kw">pub</span> <span class="ident">freeram</span>: <span class="ident">u64</span>,
<span class="kw">pub</span> <span class="ident">sharedram</span>: <span class="ident">u64</span>,
<span class="kw">pub</span> <span class="ident">bufferram</span>: <span class="ident">u64</span>,
<span class="kw">pub</span> <span class="ident">totalswap</span>: <span class="ident">u64</span>,
<span class="kw">pub</span> <span class="ident">freeswap</span>: <span class="ident">u64</span>,
<span class="kw">pub</span> <span class="ident">procs</span>: ::<span class="ident">c_ushort</span>,
<span class="kw">pub</span> <span class="ident">pad</span>: ::<span class="ident">c_ushort</span>,
<span class="kw">pub</span> <span class="ident">totalhigh</span>: <span class="ident">u64</span>,
<span class="kw">pub</span> <span class="ident">freehigh</span>: <span class="ident">u64</span>,
<span class="kw">pub</span> <span class="ident">mem_unit</span>: ::<span class="ident">c_uint</span>,
<span class="kw">pub</span> <span class="ident">_f</span>: [::<span class="ident">c_char</span>; <span class="number">0</span>],
}
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">msqid_ds</span> {
<span class="kw">pub</span> <span class="ident">msg_perm</span>: ::<span class="ident">ipc_perm</span>,
<span class="kw">pub</span> <span class="ident">msg_stime</span>: ::<span class="ident">time_t</span>,
<span class="kw">pub</span> <span class="ident">msg_rtime</span>: ::<span class="ident">time_t</span>,
<span class="kw">pub</span> <span class="ident">msg_ctime</span>: ::<span class="ident">time_t</span>,
<span class="ident">__msg_cbytes</span>: <span class="ident">u64</span>,
<span class="kw">pub</span> <span class="ident">msg_qnum</span>: ::<span class="ident">msgqnum_t</span>,
<span class="kw">pub</span> <span class="ident">msg_qbytes</span>: ::<span class="ident">msglen_t</span>,
<span class="kw">pub</span> <span class="ident">msg_lspid</span>: ::<span class="ident">pid_t</span>,
<span class="kw">pub</span> <span class="ident">msg_lrpid</span>: ::<span class="ident">pid_t</span>,
<span class="ident">__glibc_reserved4</span>: <span class="ident">u64</span>,
<span class="ident">__glibc_reserved5</span>: <span class="ident">u64</span>,
}
}
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">__SIZEOF_PTHREAD_RWLOCKATTR_T</span>: <span class="ident">usize</span> <span class="op">=</span> <span class="number">8</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">O_LARGEFILE</span>: ::<span class="ident">c_int</span> <span class="op">=</span> <span class="number">0</span>;
<span class="macro">cfg_if</span><span class="macro">!</span> {
<span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;aarch64&quot;</span>)]</span> {
<span class="kw">mod</span> <span class="ident">aarch64</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">aarch64</span>::<span class="kw-2">*</span>;
} <span class="kw">else</span> <span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">any</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;powerpc64&quot;</span>))]</span> {
<span class="kw">mod</span> <span class="ident">powerpc64</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">powerpc64</span>::<span class="kw-2">*</span>;
} <span class="kw">else</span> <span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">any</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;sparc64&quot;</span>))]</span> {
<span class="kw">mod</span> <span class="ident">sparc64</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">sparc64</span>::<span class="kw-2">*</span>;
} <span class="kw">else</span> <span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">any</span>(<span class="ident">target_arch</span> <span class="op">=</span> <span class="string">&quot;x86_64&quot;</span>))]</span> {
<span class="kw">mod</span> <span class="ident">x86_64</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">x86_64</span>::<span class="kw-2">*</span>;
<span class="macro">cfg_if</span><span class="macro">!</span> {
<span class="kw">if</span> <span class="attribute">#[<span class="ident">cfg</span>(<span class="ident">target_pointer_width</span> <span class="op">=</span> <span class="string">&quot;32&quot;</span>)]</span> {
<span class="kw">mod</span> <span class="ident">x32</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">x32</span>::<span class="kw-2">*</span>;
} <span class="kw">else</span> {
<span class="kw">mod</span> <span class="ident">not_x32</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="self">self</span>::<span class="ident">not_x32</span>::<span class="kw-2">*</span>;
}
}
} <span class="kw">else</span> {
<span class="comment">// Unknown target_arch</span>
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../../../../../";
window.currentCrate = "libc";
</script>
<script src="../../../../../../../main.js"></script>
<script defer src="../../../../../../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,812 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/libc-0.2.36/src/unix/notbsd/linux/other/b64/not_x32.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>not_x32.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../../../../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../../../../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../../../../../../main.css">
<link rel="shortcut icon" href="https://doc.rust-lang.org/favicon.ico">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<a href='../../../../../../../libc/index.html'><img src='https://www.rust-lang.org/logos/rust-logo-128x128-blk-v2.png' alt='logo' width='100'></a>
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
<span id="252">252</span>
<span id="253">253</span>
<span id="254">254</span>
<span id="255">255</span>
<span id="256">256</span>
<span id="257">257</span>
<span id="258">258</span>
<span id="259">259</span>
<span id="260">260</span>
<span id="261">261</span>
<span id="262">262</span>
<span id="263">263</span>
<span id="264">264</span>
<span id="265">265</span>
<span id="266">266</span>
<span id="267">267</span>
<span id="268">268</span>
<span id="269">269</span>
<span id="270">270</span>
<span id="271">271</span>
<span id="272">272</span>
<span id="273">273</span>
<span id="274">274</span>
<span id="275">275</span>
<span id="276">276</span>
<span id="277">277</span>
<span id="278">278</span>
<span id="279">279</span>
<span id="280">280</span>
<span id="281">281</span>
<span id="282">282</span>
<span id="283">283</span>
<span id="284">284</span>
<span id="285">285</span>
<span id="286">286</span>
<span id="287">287</span>
<span id="288">288</span>
<span id="289">289</span>
<span id="290">290</span>
<span id="291">291</span>
<span id="292">292</span>
<span id="293">293</span>
<span id="294">294</span>
<span id="295">295</span>
<span id="296">296</span>
<span id="297">297</span>
<span id="298">298</span>
<span id="299">299</span>
<span id="300">300</span>
<span id="301">301</span>
<span id="302">302</span>
<span id="303">303</span>
<span id="304">304</span>
<span id="305">305</span>
<span id="306">306</span>
<span id="307">307</span>
<span id="308">308</span>
<span id="309">309</span>
<span id="310">310</span>
<span id="311">311</span>
<span id="312">312</span>
<span id="313">313</span>
<span id="314">314</span>
<span id="315">315</span>
<span id="316">316</span>
<span id="317">317</span>
<span id="318">318</span>
<span id="319">319</span>
<span id="320">320</span>
<span id="321">321</span>
<span id="322">322</span>
<span id="323">323</span>
<span id="324">324</span>
<span id="325">325</span>
<span id="326">326</span>
<span id="327">327</span>
<span id="328">328</span>
<span id="329">329</span>
<span id="330">330</span>
<span id="331">331</span>
<span id="332">332</span>
<span id="333">333</span>
<span id="334">334</span>
<span id="335">335</span>
<span id="336">336</span>
<span id="337">337</span>
<span id="338">338</span>
<span id="339">339</span>
<span id="340">340</span>
<span id="341">341</span>
<span id="342">342</span>
<span id="343">343</span>
<span id="344">344</span>
<span id="345">345</span>
<span id="346">346</span>
<span id="347">347</span>
<span id="348">348</span>
<span id="349">349</span>
<span id="350">350</span>
<span id="351">351</span>
</pre><pre class="rust ">
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_long</span> <span class="op">=</span> <span class="ident">i64</span>;
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">c_ulong</span> <span class="op">=</span> <span class="ident">u64</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">__SIZEOF_PTHREAD_MUTEX_T</span>: <span class="ident">usize</span> <span class="op">=</span> <span class="number">40</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">__SIZEOF_PTHREAD_RWLOCK_T</span>: <span class="ident">usize</span> <span class="op">=</span> <span class="number">56</span>;
<span class="comment">// Syscall table</span>
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_read</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_write</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">1</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_open</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">2</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_close</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">3</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_stat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">4</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fstat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">5</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_lstat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">6</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_poll</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">7</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_lseek</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">8</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mmap</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">9</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mprotect</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">10</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_munmap</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">11</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_brk</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">12</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_rt_sigaction</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">13</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_rt_sigprocmask</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">14</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_rt_sigreturn</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">15</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_ioctl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">16</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pread64</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">17</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pwrite64</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">18</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_readv</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">19</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_writev</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">20</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_access</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">21</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pipe</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">22</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_select</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">23</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_yield</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">24</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mremap</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">25</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_msync</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">26</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mincore</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">27</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_madvise</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">28</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_shmget</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">29</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_shmat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">30</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_shmctl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">31</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_dup</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">32</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_dup2</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">33</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pause</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">34</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_nanosleep</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">35</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getitimer</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">36</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_alarm</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">37</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setitimer</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">38</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getpid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">39</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sendfile</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">40</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_socket</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">41</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_connect</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">42</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_accept</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">43</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sendto</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">44</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_recvfrom</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">45</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sendmsg</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">46</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_recvmsg</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">47</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_shutdown</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">48</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_bind</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">49</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_listen</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">50</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getsockname</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">51</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getpeername</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">52</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_socketpair</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">53</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setsockopt</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">54</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getsockopt</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">55</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_clone</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">56</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fork</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">57</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_vfork</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">58</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_execve</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">59</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_exit</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">60</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_wait4</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">61</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_kill</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">62</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_uname</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">63</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_semget</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">64</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_semop</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">65</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_semctl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">66</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_shmdt</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">67</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_msgget</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">68</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_msgsnd</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">69</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_msgrcv</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">70</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_msgctl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">71</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fcntl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">72</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_flock</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">73</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fsync</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">74</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fdatasync</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">75</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_truncate</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">76</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_ftruncate</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">77</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getdents</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">78</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getcwd</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">79</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_chdir</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">80</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fchdir</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">81</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_rename</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">82</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mkdir</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">83</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_rmdir</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">84</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_creat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">85</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_link</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">86</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_unlink</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">87</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_symlink</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">88</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_readlink</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">89</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_chmod</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">90</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fchmod</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">91</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_chown</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">92</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fchown</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">93</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_lchown</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">94</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_umask</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">95</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_gettimeofday</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">96</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getrlimit</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">97</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getrusage</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">98</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sysinfo</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">99</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_times</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">100</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_ptrace</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">101</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getuid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">102</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_syslog</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">103</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getgid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">104</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setuid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">105</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setgid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">106</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_geteuid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">107</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getegid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">108</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setpgid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">109</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getppid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">110</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getpgrp</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">111</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setsid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">112</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setreuid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">113</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setregid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">114</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getgroups</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">115</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setgroups</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">116</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setresuid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">117</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getresuid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">118</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setresgid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">119</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getresgid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">120</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getpgid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">121</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setfsuid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">122</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setfsgid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">123</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getsid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">124</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_capget</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">125</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_capset</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">126</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_rt_sigpending</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">127</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_rt_sigtimedwait</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">128</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_rt_sigqueueinfo</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">129</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_rt_sigsuspend</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">130</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sigaltstack</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">131</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_utime</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">132</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mknod</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">133</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_uselib</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">134</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_personality</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">135</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_ustat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">136</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_statfs</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">137</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fstatfs</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">138</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sysfs</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">139</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getpriority</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">140</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setpriority</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">141</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_setparam</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">142</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_getparam</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">143</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_setscheduler</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">144</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_getscheduler</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">145</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_get_priority_max</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">146</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_get_priority_min</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">147</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_rr_get_interval</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">148</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mlock</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">149</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_munlock</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">150</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mlockall</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">151</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_munlockall</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">152</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_vhangup</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">153</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_modify_ldt</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">154</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pivot_root</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">155</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS__sysctl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">156</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_prctl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">157</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_arch_prctl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">158</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_adjtimex</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">159</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setrlimit</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">160</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_chroot</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">161</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sync</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">162</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_acct</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">163</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_settimeofday</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">164</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mount</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">165</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_umount2</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">166</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_swapon</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">167</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_swapoff</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">168</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_reboot</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">169</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sethostname</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">170</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setdomainname</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">171</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_iopl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">172</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_ioperm</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">173</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_create_module</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">174</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_init_module</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">175</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_delete_module</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">176</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_get_kernel_syms</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">177</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_query_module</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">178</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_quotactl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">179</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_nfsservctl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">180</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getpmsg</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">181</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_putpmsg</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">182</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_afs_syscall</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">183</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_tuxcall</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">184</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_security</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">185</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_gettid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">186</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_readahead</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">187</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setxattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">188</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_lsetxattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">189</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fsetxattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">190</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getxattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">191</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_lgetxattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">192</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fgetxattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">193</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_listxattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">194</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_llistxattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">195</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_flistxattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">196</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_removexattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">197</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_lremovexattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">198</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fremovexattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">199</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_tkill</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">200</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_time</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">201</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_futex</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">202</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_setaffinity</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">203</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_getaffinity</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">204</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_set_thread_area</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">205</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_io_setup</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">206</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_io_destroy</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">207</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_io_getevents</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">208</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_io_submit</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">209</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_io_cancel</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">210</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_get_thread_area</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">211</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_lookup_dcookie</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">212</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_epoll_create</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">213</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_epoll_ctl_old</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">214</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_epoll_wait_old</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">215</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_remap_file_pages</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">216</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getdents64</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">217</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_set_tid_address</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">218</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_restart_syscall</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">219</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_semtimedop</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">220</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fadvise64</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">221</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_timer_create</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">222</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_timer_settime</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">223</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_timer_gettime</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">224</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_timer_getoverrun</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">225</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_timer_delete</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">226</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_clock_settime</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">227</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_clock_gettime</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">228</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_clock_getres</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">229</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_clock_nanosleep</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">230</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_exit_group</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">231</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_epoll_wait</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">232</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_epoll_ctl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">233</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_tgkill</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">234</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_utimes</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">235</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_vserver</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">236</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mbind</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">237</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_set_mempolicy</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">238</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_get_mempolicy</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">239</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mq_open</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">240</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mq_unlink</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">241</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mq_timedsend</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">242</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mq_timedreceive</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">243</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mq_notify</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">244</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mq_getsetattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">245</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_kexec_load</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">246</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_waitid</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">247</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_add_key</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">248</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_request_key</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">249</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_keyctl</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">250</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_ioprio_set</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">251</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_ioprio_get</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">252</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_inotify_init</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">253</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_inotify_add_watch</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">254</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_inotify_rm_watch</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">255</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_migrate_pages</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">256</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_openat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">257</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mkdirat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">258</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mknodat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">259</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fchownat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">260</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_futimesat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">261</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_newfstatat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">262</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_unlinkat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">263</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_renameat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">264</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_linkat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">265</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_symlinkat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">266</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_readlinkat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">267</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fchmodat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">268</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_faccessat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">269</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pselect6</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">270</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_ppoll</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">271</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_unshare</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">272</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_set_robust_list</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">273</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_get_robust_list</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">274</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_splice</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">275</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_tee</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">276</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sync_file_range</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">277</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_vmsplice</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">278</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_move_pages</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">279</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_utimensat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">280</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_epoll_pwait</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">281</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_signalfd</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">282</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_timerfd_create</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">283</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_eventfd</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">284</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fallocate</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">285</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_timerfd_settime</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">286</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_timerfd_gettime</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">287</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_accept4</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">288</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_signalfd4</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">289</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_eventfd2</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">290</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_epoll_create1</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">291</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_dup3</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">292</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pipe2</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">293</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_inotify_init1</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">294</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_preadv</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">295</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pwritev</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">296</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_rt_tgsigqueueinfo</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">297</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_perf_event_open</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">298</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_recvmmsg</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">299</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fanotify_init</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">300</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_fanotify_mark</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">301</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_prlimit64</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">302</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_name_to_handle_at</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">303</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_open_by_handle_at</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">304</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_clock_adjtime</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">305</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_syncfs</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">306</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sendmmsg</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">307</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_setns</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">308</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getcpu</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">309</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_process_vm_readv</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">310</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_process_vm_writev</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">311</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_kcmp</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">312</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_finit_module</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">313</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_setattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">314</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_sched_getattr</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">315</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_renameat2</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">316</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_seccomp</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">317</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_getrandom</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">318</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_memfd_create</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">319</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_kexec_file_load</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">320</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_bpf</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">321</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_execveat</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">322</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_userfaultfd</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">323</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_membarrier</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">324</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_mlock2</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">325</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_copy_file_range</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">326</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_preadv2</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">327</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pwritev2</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">328</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pkey_mprotect</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">329</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pkey_alloc</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">330</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">SYS_pkey_free</span>: ::<span class="ident">c_long</span> <span class="op">=</span> <span class="number">331</span>;
<span class="attribute">#[<span class="ident">link</span>(<span class="ident">name</span> <span class="op">=</span> <span class="string">&quot;util&quot;</span>)]</span>
<span class="kw">extern</span> {
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">sysctl</span>(<span class="ident">name</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> ::<span class="ident">c_int</span>,
<span class="ident">namelen</span>: ::<span class="ident">c_int</span>,
<span class="ident">oldp</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> ::<span class="ident">c_void</span>,
<span class="ident">oldlenp</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> ::<span class="ident">size_t</span>,
<span class="ident">newp</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> ::<span class="ident">c_void</span>,
<span class="ident">newlen</span>: ::<span class="ident">size_t</span>)
<span class="op">-&gt;</span> ::<span class="ident">c_int</span>;
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../../../../../";
window.currentCrate = "libc";
</script>
<script src="../../../../../../../main.js"></script>
<script defer src="../../../../../../../search-index.js"></script>
</body>
</html>

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

File diff suppressed because it is too large Load Diff

200
src/libnotify/enums.rs.html Normal file
View File

@@ -0,0 +1,200 @@
<!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="Source to the Rust file `src/enums.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>enums.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (89daf8f) from gir-files (1f01de0)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">std</span>;
<span class="doccomment">/// The urgency level of the notification.</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>, <span class="ident">Hash</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">Urgency</span> {
<span class="doccomment">/// Low urgency. Used for unimportant notifications.</span>
<span class="ident">Low</span>,
<span class="doccomment">/// Normal urgency. Used for most standard notifications.</span>
<span class="ident">Normal</span>,
<span class="doccomment">/// Critical urgency. Used for very important notifications.</span>
<span class="ident">Critical</span>,
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="ident">__Unknown</span>(<span class="ident">i32</span>),
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">ToGlib</span> <span class="kw">for</span> <span class="ident">Urgency</span> {
<span class="kw">type</span> <span class="ident">GlibType</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">NotifyUrgency</span>;
<span class="kw">fn</span> <span class="ident">to_glib</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="ident">ffi</span>::<span class="ident">NotifyUrgency</span> {
<span class="kw">match</span> <span class="kw-2">*</span><span class="self">self</span> {
<span class="ident">Urgency</span>::<span class="ident">Low</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">NOTIFY_URGENCY_LOW</span>,
<span class="ident">Urgency</span>::<span class="ident">Normal</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">NOTIFY_URGENCY_NORMAL</span>,
<span class="ident">Urgency</span>::<span class="ident">Critical</span> <span class="op">=&gt;</span> <span class="ident">ffi</span>::<span class="ident">NOTIFY_URGENCY_CRITICAL</span>,
<span class="ident">Urgency</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>) <span class="op">=&gt;</span> <span class="kw">unsafe</span> { <span class="ident">std</span>::<span class="ident">mem</span>::<span class="ident">transmute</span>(<span class="ident">value</span>) },
}
}
}
<span class="attribute">#[<span class="ident">doc</span>(<span class="ident">hidden</span>)]</span>
<span class="kw">impl</span> <span class="ident">FromGlib</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">NotifyUrgency</span><span class="op">&gt;</span> <span class="kw">for</span> <span class="ident">Urgency</span> {
<span class="kw">fn</span> <span class="ident">from_glib</span>(<span class="ident">value</span>: <span class="ident">ffi</span>::<span class="ident">NotifyUrgency</span>) <span class="op">-&gt;</span> <span class="self">Self</span> {
<span class="kw">match</span> <span class="ident">value</span> <span class="kw">as</span> <span class="ident">i32</span> {
<span class="number">0</span> <span class="op">=&gt;</span> <span class="ident">Urgency</span>::<span class="ident">Low</span>,
<span class="number">1</span> <span class="op">=&gt;</span> <span class="ident">Urgency</span>::<span class="ident">Normal</span>,
<span class="number">2</span> <span class="op">=&gt;</span> <span class="ident">Urgency</span>::<span class="ident">Critical</span>,
<span class="ident">value</span> <span class="op">=&gt;</span> <span class="ident">Urgency</span>::<span class="ident">__Unknown</span>(<span class="ident">value</span>),
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "libnotify";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,334 @@
<!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="Source to the Rust file `src/functions.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>functions.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="doccomment">/// Gets whether or not libnotify is initialized.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Returns</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `true` if libnotify is initialized, or `false` otherwise.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">is_initted</span>() <span class="op">-&gt;</span> <span class="ident">bool</span> {
<span class="kw">unsafe</span> { <span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">notify_is_initted</span>()) }
}
<span class="doccomment">/// Initialized libnotify. This must be called before any other functions.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Returns</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `Ok(())` if successful, `Err(str)` on error.</span>
<span class="comment">// TODO: switch back to BoolError when it hits stable glib</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">init</span>(<span class="ident">app_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">b</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">notify_init</span>(<span class="ident">app_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
<span class="kw">match</span> <span class="ident">b</span> {
<span class="ident">glib_ffi</span>::<span class="ident">GFALSE</span> <span class="op">=&gt;</span> <span class="prelude-val">Err</span>(
<span class="ident">String</span>::<span class="ident">from</span>(<span class="string">&quot;Failed to initialize libnotify&quot;</span>),
),
_ <span class="op">=&gt;</span> <span class="prelude-val">Ok</span>(()),
}
}
}
<span class="doccomment">/// Gets the application name registered.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Returns</span>
<span class="doccomment">///</span>
<span class="doccomment">/// The registered application name, passed to `init()`.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_app_name</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="macro">assert_initialized_libnotify</span><span class="macro">!</span>();
<span class="kw">unsafe</span> { <span class="ident">from_glib_none</span>(<span class="ident">ffi</span>::<span class="ident">notify_get_app_name</span>()) }
}
<span class="doccomment">/// Synchronously queries the server for its capabilities and returns them as</span>
<span class="doccomment">/// a Vector.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Returns</span>
<span class="doccomment">///</span>
<span class="doccomment">/// A Vector of server capability Strings.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_server_caps</span>() <span class="op">-&gt;</span> <span class="ident">Vec</span><span class="op">&lt;</span><span class="ident">String</span><span class="op">&gt;</span> {
<span class="macro">assert_initialized_libnotify</span><span class="macro">!</span>();
<span class="kw">unsafe</span> {
<span class="ident">FromGlibPtrContainer</span>::<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">notify_get_server_caps</span>())
}
}
<span class="doccomment">/// Synchronously queries the server for its information, specifically,</span>
<span class="doccomment">/// the name, vendor, server version, and the version of the notifications</span>
<span class="doccomment">/// specification that it is compliant with.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Returns</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `Some(ret_name, ret_vendor, ret_version, ret_spec_version)` on</span>
<span class="doccomment">/// success, otherwise `None` on error.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">get_server_info</span>() <span class="op">-&gt;</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span>(<span class="ident">String</span>, <span class="ident">String</span>, <span class="ident">String</span>, <span class="ident">String</span>)<span class="op">&gt;</span> {
<span class="macro">assert_initialized_libnotify</span><span class="macro">!</span>();
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">ret_name</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">ret_vendor</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">ret_version</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">ret_spec_version</span> <span class="op">=</span> <span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="kw">let</span> <span class="ident">ret</span> <span class="op">=</span> <span class="ident">from_glib</span>(<span class="ident">ffi</span>::<span class="ident">notify_get_server_info</span>(
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">ret_name</span>,
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">ret_vendor</span>,
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">ret_version</span>,
<span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">ret_spec_version</span>,
));
<span class="kw">if</span> <span class="ident">ret</span> {
<span class="prelude-val">Some</span>((
<span class="ident">from_glib_full</span>(<span class="ident">ret_name</span>),
<span class="ident">from_glib_full</span>(<span class="ident">ret_vendor</span>),
<span class="ident">from_glib_full</span>(<span class="ident">ret_version</span>),
<span class="ident">from_glib_full</span>(<span class="ident">ret_spec_version</span>),
))
} <span class="kw">else</span> {
<span class="prelude-val">None</span>
}
}
}
<span class="doccomment">/// Sets the application name.</span>
<span class="doccomment">/// ## `app_name`</span>
<span class="doccomment">/// The name of the application.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_app_name</span>(<span class="ident">app_name</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
<span class="macro">assert_initialized_libnotify</span><span class="macro">!</span>();
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">notify_set_app_name</span>(<span class="ident">app_name</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="doccomment">/// Uninitialized libnotify.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// This should be called when the program no longer needs libnotify for</span>
<span class="doccomment">/// the rest of its lifecycle, typically just before exitting.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">uninit</span>() {
<span class="macro">assert_initialized_libnotify</span><span class="macro">!</span>();
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">notify_uninit</span>();
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "libnotify";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

214
src/libnotify/lib.rs.html Normal file
View File

@@ -0,0 +1,214 @@
<!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="Source to the Rust file `src/lib.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>lib.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
</pre><pre class="rust ">
<span class="doccomment">//! Rustic bindings to [libnotify](https://developer.gnome.org/libnotify/)</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! ```rust</span>
<span class="doccomment">//! extern crate libnotify;</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! fn main() {</span>
<span class="doccomment">//! // Init libnotify</span>
<span class="doccomment">//! libnotify::init(&quot;myapp&quot;).unwrap();</span>
<span class="doccomment">//! // Create a new notification (doesn&#39;t show it yet)</span>
<span class="doccomment">//! let n = libnotify::Notification::new(&quot;Summary&quot;,</span>
<span class="doccomment">//! Some(&quot;Optional Body&quot;),</span>
<span class="doccomment">//! None);</span>
<span class="doccomment">//! // Show the notification</span>
<span class="doccomment">//! n.show().unwrap();</span>
<span class="doccomment">//! // Update the existent notification</span>
<span class="doccomment">//! n.update(&quot;I am another notification&quot;, None, None).unwrap();</span>
<span class="doccomment">//! // Show the updated notification</span>
<span class="doccomment">//! n.show().unwrap();</span>
<span class="doccomment">//! // We are done, deinit</span>
<span class="doccomment">//! libnotify::uninit();</span>
<span class="doccomment">//! }</span>
<span class="doccomment">//!</span>
<span class="doccomment">//! ```</span>
<span class="attribute">#![<span class="ident">warn</span>(<span class="ident">missing_docs</span>)]</span>
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">gdk_pixbuf</span>;
<span class="attribute">#[<span class="ident">macro_use</span>]</span>
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">glib</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">glib_sys</span> <span class="kw">as</span> <span class="ident">glib_ffi</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">gobject_sys</span> <span class="kw">as</span> <span class="ident">gobject_ffi</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">libnotify_sys</span> <span class="kw">as</span> <span class="ident">ffi</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">enums</span>::<span class="kw-2">*</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">functions</span>::<span class="kw-2">*</span>;
<span class="kw">pub</span> <span class="kw">use</span> <span class="ident">notification</span>::<span class="kw-2">*</span>;
<span class="macro">macro_rules</span><span class="macro">!</span> <span class="ident">assert_initialized_libnotify</span> {
() <span class="op">=&gt;</span> {
<span class="kw">use</span> <span class="ident">functions</span>::<span class="kw-2">*</span>;
<span class="kw">if</span> <span class="op">!</span><span class="ident">is_initted</span>() {
<span class="macro">panic</span><span class="macro">!</span>(<span class="string">&quot;Notify system not initialized, invalid call of function&quot;</span>);
}
}
}
<span class="kw">mod</span> <span class="ident">enums</span>;
<span class="kw">mod</span> <span class="ident">functions</span>;
<span class="kw">mod</span> <span class="ident">notification</span>;
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "libnotify";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,612 @@
<!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="Source to the Rust file `src/notification.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>notification.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10"> 10</span>
<span id="11"> 11</span>
<span id="12"> 12</span>
<span id="13"> 13</span>
<span id="14"> 14</span>
<span id="15"> 15</span>
<span id="16"> 16</span>
<span id="17"> 17</span>
<span id="18"> 18</span>
<span id="19"> 19</span>
<span id="20"> 20</span>
<span id="21"> 21</span>
<span id="22"> 22</span>
<span id="23"> 23</span>
<span id="24"> 24</span>
<span id="25"> 25</span>
<span id="26"> 26</span>
<span id="27"> 27</span>
<span id="28"> 28</span>
<span id="29"> 29</span>
<span id="30"> 30</span>
<span id="31"> 31</span>
<span id="32"> 32</span>
<span id="33"> 33</span>
<span id="34"> 34</span>
<span id="35"> 35</span>
<span id="36"> 36</span>
<span id="37"> 37</span>
<span id="38"> 38</span>
<span id="39"> 39</span>
<span id="40"> 40</span>
<span id="41"> 41</span>
<span id="42"> 42</span>
<span id="43"> 43</span>
<span id="44"> 44</span>
<span id="45"> 45</span>
<span id="46"> 46</span>
<span id="47"> 47</span>
<span id="48"> 48</span>
<span id="49"> 49</span>
<span id="50"> 50</span>
<span id="51"> 51</span>
<span id="52"> 52</span>
<span id="53"> 53</span>
<span id="54"> 54</span>
<span id="55"> 55</span>
<span id="56"> 56</span>
<span id="57"> 57</span>
<span id="58"> 58</span>
<span id="59"> 59</span>
<span id="60"> 60</span>
<span id="61"> 61</span>
<span id="62"> 62</span>
<span id="63"> 63</span>
<span id="64"> 64</span>
<span id="65"> 65</span>
<span id="66"> 66</span>
<span id="67"> 67</span>
<span id="68"> 68</span>
<span id="69"> 69</span>
<span id="70"> 70</span>
<span id="71"> 71</span>
<span id="72"> 72</span>
<span id="73"> 73</span>
<span id="74"> 74</span>
<span id="75"> 75</span>
<span id="76"> 76</span>
<span id="77"> 77</span>
<span id="78"> 78</span>
<span id="79"> 79</span>
<span id="80"> 80</span>
<span id="81"> 81</span>
<span id="82"> 82</span>
<span id="83"> 83</span>
<span id="84"> 84</span>
<span id="85"> 85</span>
<span id="86"> 86</span>
<span id="87"> 87</span>
<span id="88"> 88</span>
<span id="89"> 89</span>
<span id="90"> 90</span>
<span id="91"> 91</span>
<span id="92"> 92</span>
<span id="93"> 93</span>
<span id="94"> 94</span>
<span id="95"> 95</span>
<span id="96"> 96</span>
<span id="97"> 97</span>
<span id="98"> 98</span>
<span id="99"> 99</span>
<span id="100">100</span>
<span id="101">101</span>
<span id="102">102</span>
<span id="103">103</span>
<span id="104">104</span>
<span id="105">105</span>
<span id="106">106</span>
<span id="107">107</span>
<span id="108">108</span>
<span id="109">109</span>
<span id="110">110</span>
<span id="111">111</span>
<span id="112">112</span>
<span id="113">113</span>
<span id="114">114</span>
<span id="115">115</span>
<span id="116">116</span>
<span id="117">117</span>
<span id="118">118</span>
<span id="119">119</span>
<span id="120">120</span>
<span id="121">121</span>
<span id="122">122</span>
<span id="123">123</span>
<span id="124">124</span>
<span id="125">125</span>
<span id="126">126</span>
<span id="127">127</span>
<span id="128">128</span>
<span id="129">129</span>
<span id="130">130</span>
<span id="131">131</span>
<span id="132">132</span>
<span id="133">133</span>
<span id="134">134</span>
<span id="135">135</span>
<span id="136">136</span>
<span id="137">137</span>
<span id="138">138</span>
<span id="139">139</span>
<span id="140">140</span>
<span id="141">141</span>
<span id="142">142</span>
<span id="143">143</span>
<span id="144">144</span>
<span id="145">145</span>
<span id="146">146</span>
<span id="147">147</span>
<span id="148">148</span>
<span id="149">149</span>
<span id="150">150</span>
<span id="151">151</span>
<span id="152">152</span>
<span id="153">153</span>
<span id="154">154</span>
<span id="155">155</span>
<span id="156">156</span>
<span id="157">157</span>
<span id="158">158</span>
<span id="159">159</span>
<span id="160">160</span>
<span id="161">161</span>
<span id="162">162</span>
<span id="163">163</span>
<span id="164">164</span>
<span id="165">165</span>
<span id="166">166</span>
<span id="167">167</span>
<span id="168">168</span>
<span id="169">169</span>
<span id="170">170</span>
<span id="171">171</span>
<span id="172">172</span>
<span id="173">173</span>
<span id="174">174</span>
<span id="175">175</span>
<span id="176">176</span>
<span id="177">177</span>
<span id="178">178</span>
<span id="179">179</span>
<span id="180">180</span>
<span id="181">181</span>
<span id="182">182</span>
<span id="183">183</span>
<span id="184">184</span>
<span id="185">185</span>
<span id="186">186</span>
<span id="187">187</span>
<span id="188">188</span>
<span id="189">189</span>
<span id="190">190</span>
<span id="191">191</span>
<span id="192">192</span>
<span id="193">193</span>
<span id="194">194</span>
<span id="195">195</span>
<span id="196">196</span>
<span id="197">197</span>
<span id="198">198</span>
<span id="199">199</span>
<span id="200">200</span>
<span id="201">201</span>
<span id="202">202</span>
<span id="203">203</span>
<span id="204">204</span>
<span id="205">205</span>
<span id="206">206</span>
<span id="207">207</span>
<span id="208">208</span>
<span id="209">209</span>
<span id="210">210</span>
<span id="211">211</span>
<span id="212">212</span>
<span id="213">213</span>
<span id="214">214</span>
<span id="215">215</span>
<span id="216">216</span>
<span id="217">217</span>
<span id="218">218</span>
<span id="219">219</span>
<span id="220">220</span>
<span id="221">221</span>
<span id="222">222</span>
<span id="223">223</span>
<span id="224">224</span>
<span id="225">225</span>
<span id="226">226</span>
<span id="227">227</span>
<span id="228">228</span>
<span id="229">229</span>
<span id="230">230</span>
<span id="231">231</span>
<span id="232">232</span>
<span id="233">233</span>
<span id="234">234</span>
<span id="235">235</span>
<span id="236">236</span>
<span id="237">237</span>
<span id="238">238</span>
<span id="239">239</span>
<span id="240">240</span>
<span id="241">241</span>
<span id="242">242</span>
<span id="243">243</span>
<span id="244">244</span>
<span id="245">245</span>
<span id="246">246</span>
<span id="247">247</span>
<span id="248">248</span>
<span id="249">249</span>
<span id="250">250</span>
<span id="251">251</span>
</pre><pre class="rust ">
<span class="kw">use</span> <span class="ident">Urgency</span>;
<span class="kw">use</span> <span class="ident">ffi</span>;
<span class="kw">use</span> <span class="ident">gdk_pixbuf</span>;
<span class="kw">use</span> <span class="ident">glib</span>::<span class="ident">translate</span>::<span class="kw-2">*</span>;
<span class="kw">use</span> <span class="ident">glib</span>;
<span class="kw">use</span> <span class="ident">glib_ffi</span>;
<span class="kw">use</span> <span class="ident">gobject_ffi</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">mem</span>;
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">ptr</span>;
<span class="kw">use</span> <span class="ident">std</span>;
<span class="macro">glib_wrapper</span><span class="macro">!</span> {
<span class="doccomment">/// `Notification` represents a passive pop-up notification. It can contain</span>
<span class="doccomment">/// summary text, body text, and an icon, as well as hints specifying how</span>
<span class="doccomment">/// the notification should be presented. The notification is rendered by</span>
<span class="doccomment">/// a notification daemon, and may present the notification in any number</span>
<span class="doccomment">/// of ways. As such, there is a clear separation of content and</span>
<span class="doccomment">/// presentation, and this API enforces that.</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">Notification</span>(<span class="ident">Object</span><span class="op">&lt;</span><span class="ident">ffi</span>::<span class="ident">NotifyNotification</span><span class="op">&gt;</span>);
<span class="kw">match</span> <span class="kw">fn</span> {
<span class="ident">get_type</span> <span class="op">=&gt;</span> <span class="op">||</span> <span class="ident">ffi</span>::<span class="ident">notify_notification_get_type</span>(),
}
}
<span class="kw">impl</span> <span class="ident">Notification</span> {
<span class="doccomment">/// Creates a new `Notification`. The summary text is required, but</span>
<span class="doccomment">/// all other parameters are optional.</span>
<span class="doccomment">/// ## `summary`</span>
<span class="doccomment">/// The required summary text.</span>
<span class="doccomment">/// ## `body`</span>
<span class="doccomment">/// The optional body text.</span>
<span class="doccomment">/// ## `icon`</span>
<span class="doccomment">/// The optional icon theme icon name or filename.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Returns</span>
<span class="doccomment">///</span>
<span class="doccomment">/// The new `Notification`.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="lifetime">&#39;b</span>, <span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>, <span class="ident">Q</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;b</span> <span class="ident">str</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(
<span class="ident">summary</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>,
<span class="ident">body</span>: <span class="ident">P</span>,
<span class="ident">icon</span>: <span class="ident">Q</span>,
) <span class="op">-&gt;</span> <span class="ident">Notification</span> {
<span class="macro">assert_initialized_libnotify</span><span class="macro">!</span>();
<span class="kw">let</span> <span class="ident">body</span> <span class="op">=</span> <span class="ident">body</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">body</span> <span class="op">=</span> <span class="ident">body</span>.<span class="ident">to_glib_none</span>();
<span class="kw">let</span> <span class="ident">icon</span> <span class="op">=</span> <span class="ident">icon</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">icon</span> <span class="op">=</span> <span class="ident">icon</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="ident">from_glib_full</span>(<span class="ident">ffi</span>::<span class="ident">notify_notification_new</span>(
<span class="ident">summary</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">body</span>.<span class="number">0</span>,
<span class="ident">icon</span>.<span class="number">0</span>,
))
}
}
<span class="doccomment">/// Synchronously tells the notification server to hide the notification on the screen.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Returns</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `Ok(())` on success, or `Err(err)` on error</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">close</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">glib</span>::<span class="ident">error</span>::<span class="ident">Error</span><span class="op">&gt;</span> {
<span class="macro">assert_initialized_libnotify</span><span class="macro">!</span>();
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">err</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib_ffi</span>::<span class="ident">GError</span> <span class="op">=</span> <span class="ident">std</span>::<span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="ident">ffi</span>::<span class="ident">notify_notification_close</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">err</span>);
<span class="kw">if</span> <span class="op">!</span><span class="ident">err</span>.<span class="ident">is_null</span>() {
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">glib</span>::<span class="ident">error</span>::<span class="ident">Error</span>::<span class="ident">wrap</span>(<span class="ident">err</span>));
} <span class="kw">else</span> {
<span class="kw">return</span> <span class="prelude-val">Ok</span>(());
}
}
}
<span class="doccomment">/// Tells the notification server to display the notification on the screen.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Returns</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `Ok(())` on success, or `Err(err)` on error</span>
<span class="comment">// TODO: test if Error leaks memory</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">show</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">glib</span>::<span class="ident">error</span>::<span class="ident">Error</span><span class="op">&gt;</span> {
<span class="macro">assert_initialized_libnotify</span><span class="macro">!</span>();
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">err</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib_ffi</span>::<span class="ident">GError</span> <span class="op">=</span> <span class="ident">std</span>::<span class="ident">ptr</span>::<span class="ident">null_mut</span>();
<span class="ident">ffi</span>::<span class="ident">notify_notification_show</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>, <span class="kw-2">&amp;</span><span class="kw-2">mut</span> <span class="ident">err</span>);
<span class="kw">if</span> <span class="op">!</span><span class="ident">err</span>.<span class="ident">is_null</span>() {
<span class="kw">return</span> <span class="prelude-val">Err</span>(<span class="ident">glib</span>::<span class="ident">error</span>::<span class="ident">Error</span>::<span class="ident">wrap</span>(<span class="ident">err</span>));
} <span class="kw">else</span> {
<span class="kw">return</span> <span class="prelude-val">Ok</span>(());
}
}
}
<span class="doccomment">/// Sets a hint for `key` with value `value`. If `value` is `None`,</span>
<span class="doccomment">/// a previously set hint for `key` is unset.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// If `value` is floating, it is consumed.</span>
<span class="doccomment">/// ## `key`</span>
<span class="doccomment">/// the hint key</span>
<span class="doccomment">/// ## `value`</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_hint</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">key</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>, <span class="ident">value</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="ident">glib</span>::<span class="ident">variant</span>::<span class="ident">Variant</span><span class="op">&gt;</span>) {
<span class="macro">assert_initialized_libnotify</span><span class="macro">!</span>();
<span class="kw">let</span> <span class="ident">gvalue</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib_ffi</span>::<span class="ident">GVariant</span> <span class="op">=</span> {
<span class="kw">match</span> <span class="ident">value</span> {
<span class="prelude-val">Some</span>(<span class="kw-2">ref</span> <span class="ident">value</span>) <span class="op">=&gt;</span> <span class="ident">value</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="prelude-val">None</span> <span class="op">=&gt;</span> <span class="ident">std</span>::<span class="ident">ptr</span>::<span class="ident">null_mut</span>(),
}
};
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">notify_notification_set_hint</span>(
<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">key</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">gvalue</span>,
)
}
}
<span class="doccomment">/// Sets the image in the notification from a `gdk_pixbuf::Pixbuf`.</span>
<span class="doccomment">/// ## `pixbuf`</span>
<span class="doccomment">/// The image.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_image_from_pixbuf</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">pixbuf</span>: <span class="kw-2">&amp;</span><span class="ident">gdk_pixbuf</span>::<span class="ident">Pixbuf</span>) {
<span class="macro">assert_initialized_libnotify</span><span class="macro">!</span>();
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">notify_notification_set_image_from_pixbuf</span>(
<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">pixbuf</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
);
}
}
<span class="doccomment">/// Clears all hints from the notification.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">clear_hints</span>(<span class="kw-2">&amp;</span><span class="self">self</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">notify_notification_clear_hints</span>(<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>);
}
}
<span class="doccomment">/// Sets the application name for the notification. If this function is</span>
<span class="doccomment">/// not called or if `app_name` is `None`, the application name will be</span>
<span class="doccomment">/// set from the value used in `notify_init` or overridden with</span>
<span class="doccomment">/// `notify_set_app_name`.</span>
<span class="doccomment">/// ## `app_name`</span>
<span class="doccomment">/// the localised application name</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_app_name</span><span class="op">&lt;</span><span class="lifetime">&#39;a</span>, <span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span><span class="op">&gt;</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">app_name</span>: <span class="ident">P</span>) {
<span class="kw">let</span> <span class="ident">app_name</span> <span class="op">=</span> <span class="ident">app_name</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">app_name</span> <span class="op">=</span> <span class="ident">app_name</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">notify_notification_set_app_name</span>(
<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">app_name</span>.<span class="number">0</span>,
);
}
}
<span class="doccomment">/// Sets the category of this notification. This can be used by the</span>
<span class="doccomment">/// notification server to filter or display the data in a certain way.</span>
<span class="doccomment">/// ## `category`</span>
<span class="doccomment">/// The category.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_category</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">category</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">notify_notification_set_category</span>(
<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">category</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
);
}
}
<span class="doccomment">/// Sets the timeout of the notification. To set the default time, pass</span>
<span class="doccomment">/// `NOTIFY_EXPIRES_DEFAULT` as `timeout`. To set the notification to never</span>
<span class="doccomment">/// expire, pass `NOTIFY_EXPIRES_NEVER`.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// Note that the timeout may be ignored by the server.</span>
<span class="doccomment">/// ## `timeout`</span>
<span class="doccomment">/// The timeout in milliseconds.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_timeout</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">timeout</span>: <span class="ident">i32</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">notify_notification_set_timeout</span>(
<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">timeout</span>,
);
}
}
<span class="doccomment">/// Sets the urgency level of this notification.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// See: `Urgency`</span>
<span class="doccomment">/// ## `urgency`</span>
<span class="doccomment">/// The urgency level.</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">set_urgency</span>(<span class="kw-2">&amp;</span><span class="self">self</span>, <span class="ident">urgency</span>: <span class="ident">Urgency</span>) {
<span class="kw">unsafe</span> {
<span class="ident">ffi</span>::<span class="ident">notify_notification_set_urgency</span>(
<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">urgency</span>.<span class="ident">to_glib</span>(),
);
}
}
<span class="doccomment">/// Updates the notification text and icon. This won&#39;t send the update out</span>
<span class="doccomment">/// and display it on the screen. For that, you will need to call</span>
<span class="doccomment">/// `Notification::show`.</span>
<span class="doccomment">/// ## `summary`</span>
<span class="doccomment">/// The new required summary text.</span>
<span class="doccomment">/// ## `body`</span>
<span class="doccomment">/// The optional body text.</span>
<span class="doccomment">/// ## `icon`</span>
<span class="doccomment">/// The optional icon theme icon name or filename.</span>
<span class="doccomment">///</span>
<span class="doccomment">/// # Returns</span>
<span class="doccomment">///</span>
<span class="doccomment">/// `Ok(())` on success, or `Err(str)` if an invalid parameter was passed</span>
<span class="comment">// TODO: switch back to BoolError when it hits stable glib</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">update</span><span class="op">&lt;</span>
<span class="lifetime">&#39;a</span>,
<span class="lifetime">&#39;b</span>,
<span class="ident">P</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;a</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>,
<span class="ident">Q</span>: <span class="ident">Into</span><span class="op">&lt;</span><span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw-2">&amp;</span><span class="lifetime">&#39;b</span> <span class="ident">str</span><span class="op">&gt;&gt;</span>,
<span class="op">&gt;</span>(
<span class="kw-2">&amp;</span><span class="self">self</span>,
<span class="ident">summary</span>: <span class="kw-2">&amp;</span><span class="ident">str</span>,
<span class="ident">body</span>: <span class="ident">P</span>,
<span class="ident">icon</span>: <span class="ident">Q</span>,
) <span class="op">-&gt;</span> <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">String</span><span class="op">&gt;</span> {
<span class="kw">let</span> <span class="ident">body</span> <span class="op">=</span> <span class="ident">body</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">body</span> <span class="op">=</span> <span class="ident">body</span>.<span class="ident">to_glib_none</span>();
<span class="kw">let</span> <span class="ident">icon</span> <span class="op">=</span> <span class="ident">icon</span>.<span class="ident">into</span>();
<span class="kw">let</span> <span class="ident">icon</span> <span class="op">=</span> <span class="ident">icon</span>.<span class="ident">to_glib_none</span>();
<span class="kw">unsafe</span> {
<span class="kw">let</span> <span class="ident">b</span> <span class="op">=</span> <span class="ident">ffi</span>::<span class="ident">notify_notification_update</span>(
<span class="self">self</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">summary</span>.<span class="ident">to_glib_none</span>().<span class="number">0</span>,
<span class="ident">body</span>.<span class="number">0</span>,
<span class="ident">icon</span>.<span class="number">0</span>,
);
<span class="kw">match</span> <span class="ident">b</span> {
<span class="ident">glib_ffi</span>::<span class="ident">GFALSE</span> <span class="op">=&gt;</span> <span class="prelude-val">Err</span>(
<span class="ident">String</span>::<span class="ident">from</span>(<span class="string">&quot;Invalid parameter passed&quot;</span>),
),
_ <span class="op">=&gt;</span> <span class="prelude-val">Ok</span>(()),
}
}
}
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "libnotify";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>

View File

@@ -0,0 +1,306 @@
<!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="Source to the Rust file `/home/travis/.cargo/registry/src/github.com-1ecc6299db9ec823/libnotify-sys-1.0.1/src/lib.rs`.">
<meta name="keywords" content="rust, rustlang, rust-lang">
<title>lib.rs.html -- source</title>
<link rel="stylesheet" type="text/css" href="../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../rustdoc.css">
<link rel="stylesheet" type="text/css" href="../../main.css">
</head>
<body class="rustdoc source">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
</nav>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><pre class="line-numbers"><span id="1"> 1</span>
<span id="2"> 2</span>
<span id="3"> 3</span>
<span id="4"> 4</span>
<span id="5"> 5</span>
<span id="6"> 6</span>
<span id="7"> 7</span>
<span id="8"> 8</span>
<span id="9"> 9</span>
<span id="10">10</span>
<span id="11">11</span>
<span id="12">12</span>
<span id="13">13</span>
<span id="14">14</span>
<span id="15">15</span>
<span id="16">16</span>
<span id="17">17</span>
<span id="18">18</span>
<span id="19">19</span>
<span id="20">20</span>
<span id="21">21</span>
<span id="22">22</span>
<span id="23">23</span>
<span id="24">24</span>
<span id="25">25</span>
<span id="26">26</span>
<span id="27">27</span>
<span id="28">28</span>
<span id="29">29</span>
<span id="30">30</span>
<span id="31">31</span>
<span id="32">32</span>
<span id="33">33</span>
<span id="34">34</span>
<span id="35">35</span>
<span id="36">36</span>
<span id="37">37</span>
<span id="38">38</span>
<span id="39">39</span>
<span id="40">40</span>
<span id="41">41</span>
<span id="42">42</span>
<span id="43">43</span>
<span id="44">44</span>
<span id="45">45</span>
<span id="46">46</span>
<span id="47">47</span>
<span id="48">48</span>
<span id="49">49</span>
<span id="50">50</span>
<span id="51">51</span>
<span id="52">52</span>
<span id="53">53</span>
<span id="54">54</span>
<span id="55">55</span>
<span id="56">56</span>
<span id="57">57</span>
<span id="58">58</span>
<span id="59">59</span>
<span id="60">60</span>
<span id="61">61</span>
<span id="62">62</span>
<span id="63">63</span>
<span id="64">64</span>
<span id="65">65</span>
<span id="66">66</span>
<span id="67">67</span>
<span id="68">68</span>
<span id="69">69</span>
<span id="70">70</span>
<span id="71">71</span>
<span id="72">72</span>
<span id="73">73</span>
<span id="74">74</span>
<span id="75">75</span>
<span id="76">76</span>
<span id="77">77</span>
<span id="78">78</span>
<span id="79">79</span>
<span id="80">80</span>
<span id="81">81</span>
<span id="82">82</span>
<span id="83">83</span>
<span id="84">84</span>
<span id="85">85</span>
<span id="86">86</span>
<span id="87">87</span>
<span id="88">88</span>
<span id="89">89</span>
<span id="90">90</span>
<span id="91">91</span>
<span id="92">92</span>
<span id="93">93</span>
<span id="94">94</span>
<span id="95">95</span>
<span id="96">96</span>
<span id="97">97</span>
<span id="98">98</span>
</pre><pre class="rust ">
<span class="comment">// This file was generated by gir (89daf8f) from gir-files (1f01de0)</span>
<span class="comment">// DO NOT EDIT</span>
<span class="attribute">#![<span class="ident">allow</span>(<span class="ident">non_camel_case_types</span>, <span class="ident">non_upper_case_globals</span>)]</span>
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">libc</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">bitflags</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">glib_sys</span> <span class="kw">as</span> <span class="ident">glib</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">gobject_sys</span> <span class="kw">as</span> <span class="ident">gobject</span>;
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">gdk_pixbuf_sys</span> <span class="kw">as</span> <span class="ident">gdk_pixbuf</span>;
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_imports</span>)]</span>
<span class="kw">use</span> <span class="ident">libc</span>::{<span class="ident">c_int</span>, <span class="ident">c_char</span>, <span class="ident">c_uchar</span>, <span class="ident">c_float</span>, <span class="ident">c_uint</span>, <span class="ident">c_double</span>,
<span class="ident">c_short</span>, <span class="ident">c_ushort</span>, <span class="ident">c_long</span>, <span class="ident">c_ulong</span>,
<span class="ident">c_void</span>, <span class="ident">size_t</span>, <span class="ident">ssize_t</span>, <span class="ident">intptr_t</span>, <span class="ident">uintptr_t</span>, <span class="ident">time_t</span>, <span class="ident">FILE</span>};
<span class="attribute">#[<span class="ident">allow</span>(<span class="ident">unused_imports</span>)]</span>
<span class="kw">use</span> <span class="ident">glib</span>::{<span class="ident">gboolean</span>, <span class="ident">gconstpointer</span>, <span class="ident">gpointer</span>, <span class="ident">GType</span>, <span class="ident">Volatile</span>};
<span class="comment">// Enums</span>
<span class="attribute">#[<span class="ident">derive</span>(<span class="ident">Clone</span>, <span class="ident">Copy</span>, <span class="ident">Debug</span>, <span class="ident">Eq</span>, <span class="ident">PartialEq</span>)]</span>
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">enum</span> <span class="ident">NotifyUrgency</span> {
<span class="ident">Low</span> <span class="op">=</span> <span class="number">0</span>,
<span class="ident">Normal</span> <span class="op">=</span> <span class="number">1</span>,
<span class="ident">Critical</span> <span class="op">=</span> <span class="number">2</span>,
}
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">NOTIFY_URGENCY_LOW</span>: <span class="ident">NotifyUrgency</span> <span class="op">=</span> <span class="ident">NotifyUrgency</span>::<span class="ident">Low</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">NOTIFY_URGENCY_NORMAL</span>: <span class="ident">NotifyUrgency</span> <span class="op">=</span> <span class="ident">NotifyUrgency</span>::<span class="ident">Normal</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">NOTIFY_URGENCY_CRITICAL</span>: <span class="ident">NotifyUrgency</span> <span class="op">=</span> <span class="ident">NotifyUrgency</span>::<span class="ident">Critical</span>;
<span class="comment">// Constants</span>
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">NOTIFY_EXPIRES_DEFAULT</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="op">-</span><span class="number">1</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">NOTIFY_EXPIRES_NEVER</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">NOTIFY_VERSION_MAJOR</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="number">0</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">NOTIFY_VERSION_MICRO</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="number">7</span>;
<span class="kw">pub</span> <span class="kw">const</span> <span class="ident">NOTIFY_VERSION_MINOR</span>: <span class="ident">c_int</span> <span class="op">=</span> <span class="number">7</span>;
<span class="comment">// Callbacks</span>
<span class="kw">pub</span> <span class="kw">type</span> <span class="ident">NotifyActionCallback</span> <span class="op">=</span> <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">gpointer</span>)<span class="op">&gt;</span>;
<span class="comment">// Records</span>
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">NotifyNotificationClass</span> {
<span class="kw">pub</span> <span class="ident">parent_class</span>: <span class="ident">gobject</span>::<span class="ident">GObjectClass</span>,
<span class="kw">pub</span> <span class="ident">closed</span>: <span class="prelude-ty">Option</span><span class="op">&lt;</span><span class="kw">unsafe</span> <span class="kw">extern</span> <span class="string">&quot;C&quot;</span> <span class="kw">fn</span>(<span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>)<span class="op">&gt;</span>,
}
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">NotifyNotificationPrivate</span>(<span class="ident">c_void</span>);
<span class="comment">// Classes</span>
<span class="attribute">#[<span class="ident">repr</span>(<span class="ident">C</span>)]</span>
<span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">NotifyNotification</span> {
<span class="kw">pub</span> <span class="ident">parent_object</span>: <span class="ident">gobject</span>::<span class="ident">GObject</span>,
<span class="kw">pub</span> <span class="ident">priv_</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotificationPrivate</span>,
}
<span class="kw">extern</span> <span class="string">&quot;C&quot;</span> {
<span class="comment">//=========================================================================</span>
<span class="comment">// NotifyNotification</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_get_type</span>() <span class="op">-&gt;</span> <span class="ident">GType</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_new</span>(<span class="ident">summary</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">body</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">icon</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>;
<span class="comment">//pub fn notify_notification_add_action(notification: *mut NotifyNotification, action: *const c_char, label: *const c_char, callback: NotifyActionCallback, user_data: gpointer, free_func: /*Metadata mismatch*/[c:type mismatch `GFreeFunc` != `GDestroyNotify` of `DestroyNotify`]);</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_clear_actions</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_clear_hints</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_close</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_get_closed_reason</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">NotifyNotification</span>) <span class="op">-&gt;</span> <span class="ident">c_int</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_app_name</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">app_name</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_category</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">category</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_hint</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">value</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GVariant</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_hint_byte</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">value</span>: <span class="ident">c_uchar</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_hint_byte_array</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">value</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">u8</span>, <span class="ident">len</span>: <span class="ident">size_t</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_hint_double</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">value</span>: <span class="ident">c_double</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_hint_int32</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">value</span>: <span class="ident">c_int</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_hint_string</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">value</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_hint_uint32</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">key</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">value</span>: <span class="ident">c_uint</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_icon_from_pixbuf</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">icon</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gdk_pixbuf</span>::<span class="ident">GdkPixbuf</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_image_from_pixbuf</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">pixbuf</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">gdk_pixbuf</span>::<span class="ident">GdkPixbuf</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_timeout</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">timeout</span>: <span class="ident">c_int</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_set_urgency</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">urgency</span>: <span class="ident">NotifyUrgency</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_show</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">error</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GError</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_notification_update</span>(<span class="ident">notification</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">NotifyNotification</span>, <span class="ident">summary</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">body</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>, <span class="ident">icon</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="comment">//=========================================================================</span>
<span class="comment">// Other functions</span>
<span class="comment">//=========================================================================</span>
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_get_app_name</span>() <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_get_server_caps</span>() <span class="op">-&gt;</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">glib</span>::<span class="ident">GList</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_get_server_info</span>(<span class="ident">ret_name</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">ret_vendor</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">ret_version</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>, <span class="ident">ret_spec_version</span>: <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="kw-2">*</span><span class="kw-2">mut</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_init</span>(<span class="ident">app_name</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>) <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_is_initted</span>() <span class="op">-&gt;</span> <span class="ident">gboolean</span>;
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_set_app_name</span>(<span class="ident">app_name</span>: <span class="kw-2">*</span><span class="kw">const</span> <span class="ident">c_char</span>);
<span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">notify_uninit</span>();
}
</pre>
</section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt>?</dt>
<dd>Show this help dialog</dd>
<dt>S</dt>
<dd>Focus the search field</dd>
<dt></dt>
<dd>Move up in search results</dd>
<dt></dt>
<dd>Move down in search results</dd>
<dt></dt>
<dd>Switch tab</dd>
<dt>&#9166;</dt>
<dd>Go to active search result</dd>
<dt style="width:31px;">+ / -</dt>
<dd>Collapse/expand 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>
</div>
</div>
</aside>
<script>
window.rootPath = "../../";
window.currentCrate = "libnotify_sys";
</script>
<script src="../../main.js"></script>
<script defer src="../../search-index.js"></script>
</body>
</html>