|  | <!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/disconnect_options.rs`."> | 
|  | <meta name="keywords" content="rust, rustlang, rust-lang"> | 
|  |  | 
|  | <title>disconnect_options.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">// diconnect_options.rs</span> | 
|  | <span class="comment">// This file is part of the Eclipse Paho MQTT Rust Client library.</span> | 
|  | <span class="comment">//</span> | 
|  |  | 
|  | <span class="comment">/******************************************************************************* | 
|  | * Copyright (c) 2017 Frank Pagliughi <fpagliughi@mindspring.com> | 
|  | * | 
|  | * All rights reserved. This program and the accompanying materials | 
|  | * are made available under the terms of the Eclipse Public License v1.0 | 
|  | * and Eclipse Distribution License v1.0 which accompany this distribution. | 
|  | * | 
|  | * The Eclipse Public License is available at | 
|  | *    http://www.eclipse.org/legal/epl-v10.html | 
|  | * and the Eclipse Distribution License is available at | 
|  | *   http://www.eclipse.org/org/documents/edl-v10.php. | 
|  | * | 
|  | * Contributors: | 
|  | *    Frank Pagliughi - initial implementation and documentation | 
|  | *******************************************************************************/</span> | 
|  |  | 
|  | <span class="kw">use</span> <span class="ident">ffi</span>; | 
|  | <span class="kw">use</span> <span class="ident">std</span>::<span class="ident">time</span>::<span class="ident">Duration</span>; | 
|  |  | 
|  | <span class="doccomment">/// The collection of options for disconnecting from the client.</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">DisconnectOptions</span> { | 
|  | <span class="kw">pub</span> <span class="ident">copts</span>: <span class="ident">ffi</span>::<span class="ident">MQTTAsync_disconnectOptions</span>, | 
|  | } | 
|  |  | 
|  | <span class="kw">impl</span> <span class="ident">DisconnectOptions</span> { | 
|  | <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-></span> <span class="ident">DisconnectOptions</span> { | 
|  | <span class="ident">DisconnectOptions</span>::<span class="ident">default</span>() | 
|  | } | 
|  | } | 
|  |  | 
|  | <span class="kw">impl</span> <span class="ident">Default</span> <span class="kw">for</span> <span class="ident">DisconnectOptions</span> { | 
|  | <span class="kw">fn</span> <span class="ident">default</span>() <span class="op">-></span> <span class="ident">DisconnectOptions</span> { | 
|  | <span class="ident">DisconnectOptions</span> { | 
|  | <span class="ident">copts</span>: <span class="ident">ffi</span>::<span class="ident">MQTTAsync_disconnectOptions</span>::<span class="ident">default</span>(), | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | <span class="comment">/////////////////////////////////////////////////////////////////////////////</span> | 
|  | <span class="comment">//								Builder</span> | 
|  | <span class="comment">/////////////////////////////////////////////////////////////////////////////</span> | 
|  |  | 
|  | <span class="kw">pub</span> <span class="kw">struct</span> <span class="ident">DisconnectOptionsBuilder</span> { | 
|  | <span class="ident">copts</span>: <span class="ident">ffi</span>::<span class="ident">MQTTAsync_disconnectOptions</span>, | 
|  | } | 
|  |  | 
|  | <span class="kw">impl</span> <span class="ident">DisconnectOptionsBuilder</span> { | 
|  | <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">new</span>() <span class="op">-></span> <span class="ident">DisconnectOptionsBuilder</span> { | 
|  | <span class="ident">DisconnectOptionsBuilder</span> { | 
|  | <span class="ident">copts</span>: <span class="ident">ffi</span>::<span class="ident">MQTTAsync_disconnectOptions</span>::<span class="ident">default</span>(), | 
|  | } | 
|  | } | 
|  |  | 
|  | <span class="doccomment">/// Sets the time interval to allow the disconnect to complete.</span> | 
|  | <span class="doccomment">/// This specifies the time to allow in-flight messages to complete.</span> | 
|  | <span class="doccomment">/// </span> | 
|  | <span class="doccomment">/// # Arguments</span> | 
|  | <span class="doccomment">///</span> | 
|  | <span class="doccomment">/// `timeout` The time interval to allow the disconnect to </span> | 
|  | <span class="doccomment">/// 		  complete. This has a resolution of seconds.</span> | 
|  | <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">timeout</span>(<span class="kw-2">&</span><span class="kw-2">mut</span> <span class="self">self</span>, <span class="ident">timeout</span>: <span class="ident">Duration</span>) <span class="op">-></span> <span class="kw-2">&</span><span class="kw-2">mut</span> <span class="ident">DisconnectOptionsBuilder</span> { | 
|  | <span class="kw">let</span> <span class="ident">secs</span> <span class="op">=</span> <span class="ident">timeout</span>.<span class="ident">as_secs</span>(); | 
|  | <span class="self">self</span>.<span class="ident">copts</span>.<span class="ident">timeout</span> <span class="op">=</span> <span class="kw">if</span> <span class="ident">secs</span> <span class="op">==</span> <span class="number">0</span> { <span class="number">1</span> } <span class="kw">else</span> { <span class="ident">secs</span> <span class="kw">as</span> <span class="ident">i32</span> }; | 
|  | <span class="self">self</span> | 
|  | } | 
|  |  | 
|  | <span class="doccomment">/// Finalize the builder to create the connect options.</span> | 
|  | <span class="kw">pub</span> <span class="kw">fn</span> <span class="ident">finalize</span>(<span class="kw-2">&</span><span class="self">self</span>) <span class="op">-></span> <span class="ident">DisconnectOptions</span> { | 
|  | <span class="ident">DisconnectOptions</span> { | 
|  | <span class="ident">copts</span>: <span class="self">self</span>.<span class="ident">copts</span>.<span class="ident">clone</span>(), | 
|  | } | 
|  | } | 
|  | } | 
|  |  | 
|  | <span class="comment">/////////////////////////////////////////////////////////////////////////////</span> | 
|  | <span class="comment">//								Unit Tests</span> | 
|  | <span class="comment">/////////////////////////////////////////////////////////////////////////////</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="kw">super</span>::<span class="kw-2">*</span>; | 
|  | <span class="comment">//use std::ffi::{CStr};</span> | 
|  |  | 
|  | <span class="attribute">#[<span class="ident">test</span>]</span> | 
|  | <span class="kw">fn</span> <span class="ident">test_new</span>() { | 
|  | <span class="kw">let</span> <span class="ident">opts</span> <span class="op">=</span> <span class="ident">DisconnectOptions</span>::<span class="ident">new</span>(); | 
|  |  | 
|  | <span class="macro">assert_eq</span><span class="macro">!</span>([ <span class="string">'M'</span> <span class="kw">as</span> <span class="ident">i8</span>, <span class="string">'Q'</span> <span class="kw">as</span> <span class="ident">i8</span>, <span class="string">'T'</span> <span class="kw">as</span> <span class="ident">i8</span>, <span class="string">'D'</span> <span class="kw">as</span> <span class="ident">i8</span> ], <span class="ident">opts</span>.<span class="ident">copts</span>.<span class="ident">struct_id</span>); | 
|  | <span class="macro">assert_eq</span><span class="macro">!</span>(<span class="number">0</span>, <span class="ident">opts</span>.<span class="ident">copts</span>.<span class="ident">struct_version</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>Go to active search result</dd> | 
|  | <dt>+</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 = "paho_mqtt"; | 
|  | </script> | 
|  | <script src="../../main.js"></script> | 
|  | <script defer src="../../search-index.js"></script> | 
|  | </body> | 
|  | </html> |