165 lines
56 KiB
HTML
165 lines
56 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="API documentation for the Rust `Config` struct in crate `resolv_conf`."><meta name="keywords" content="rust, rustlang, rust-lang, Config"><title>resolv_conf::Config - Rust</title><link rel="stylesheet" type="text/css" href="../normalize.css"><link rel="stylesheet" type="text/css" href="../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" type="text/css" href="../dark.css"><link rel="stylesheet" type="text/css" href="../light.css" id="themeStyle"><script src="../storage.js"></script><noscript><link rel="stylesheet" href="../noscript.css"></noscript><link rel="shortcut icon" href="../favicon.ico"><style type="text/css">#crate-search{background-image:url("../down-arrow.svg");}</style></head><body class="rustdoc struct"><!--[if lte IE 8]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="sidebar"><div class="sidebar-menu">☰</div><a href='../resolv_conf/index.html'><div class='logo-container'><img src='../rust-logo.png' alt='logo'></div></a><p class='location'>Struct Config</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#fields">Fields</a><div class="sidebar-links"><a href="#structfield.nameservers">nameservers</a><a href="#structfield.sortlist">sortlist</a><a href="#structfield.debug">debug</a><a href="#structfield.ndots">ndots</a><a href="#structfield.timeout">timeout</a><a href="#structfield.attempts">attempts</a><a href="#structfield.rotate">rotate</a><a href="#structfield.no_check_names">no_check_names</a><a href="#structfield.inet6">inet6</a><a href="#structfield.ip6_bytestring">ip6_bytestring</a><a href="#structfield.ip6_dotint">ip6_dotint</a><a href="#structfield.edns0">edns0</a><a href="#structfield.single_request">single_request</a><a href="#structfield.single_request_reopen">single_request_reopen</a><a href="#structfield.no_tld_query">no_tld_query</a><a href="#structfield.use_vc">use_vc</a><a href="#structfield.lookup">lookup</a><a href="#structfield.family">family</a></div><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.get_domain">get_domain</a><a href="#method.get_last_search_or_domain">get_last_search_or_domain</a><a href="#method.get_nameservers_or_local">get_nameservers_or_local</a><a href="#method.get_search">get_search</a><a href="#method.get_system_domain">get_system_domain</a><a href="#method.glibc_normalize">glibc_normalize</a><a href="#method.new">new</a><a href="#method.parse">parse</a><a href="#method.set_domain">set_domain</a><a href="#method.set_search">set_search</a></div><a class="sidebar-title" href="#implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Clone">Clone</a><a href="#impl-Debug">Debug</a><a href="#impl-Display">Display</a><a href="#impl-Eq">Eq</a><a href="#impl-PartialEq%3CConfig%3E">PartialEq<Config></a><a href="#impl-StructuralEq">StructuralEq</a><a href="#impl-StructuralPartialEq">StructuralPartialEq</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-RefUnwindSafe">RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">UnwindSafe</a></div><a class="sidebar-title" href="#blanket-implementations">Blanket Implementations</a><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow<T></a><a href="#impl-BorrowMut%3CT%3E">BorrowMut<T></a><a href="#impl-From%3CT%3E">From<T></a><a href="#impl-Into%3CU%3E">Into<U></a><a href="#impl-ToOwned">ToOwned</a><a href="#impl-ToString">ToString</a><a href="#impl-TryFrom%3CU%3E">TryFrom<U></a><a href="#impl-TryInto%3CU%3E">TryInto<U></a></div></div><p class='location'><a href='index.html'>resolv_conf</a></p><script>window.sidebarCurrent = {name: 'Config', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div></nav><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!"><img src="../brush.svg" width="18" alt="Pick another theme!"></button><div id="theme-choices"></div></div><script src="../theme.js"></script><nav class="sub"><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" disabled autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"></div><a id="settings-menu" href="../settings.html"><img src="../wheel.svg" width="18" alt="Change settings"></a></div></form></nav><section id="main" class="content"><h1 class='fqn'><span class='out-of-band'><span id='render-detail'><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class='inner'>−</span>]</a></span><a class='srclink' href='../src/resolv_conf/config.rs.html#53-103' title='goto source code'>[src]</a></span><span class='in-band'>Struct <a href='index.html'>resolv_conf</a>::<wbr><a class="struct" href=''>Config</a></span></h1><div class="docblock type-decl hidden-by-usual-hider"><pre class='rust struct'>pub struct Config {
|
||
pub nameservers: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../resolv_conf/enum.ScopedIp.html" title="enum resolv_conf::ScopedIp">ScopedIp</a>>,
|
||
pub sortlist: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../resolv_conf/enum.Network.html" title="enum resolv_conf::Network">Network</a>>,
|
||
pub debug: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub ndots: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
|
||
pub timeout: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
|
||
pub attempts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a>,
|
||
pub rotate: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub no_check_names: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub inet6: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub ip6_bytestring: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub ip6_dotint: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub edns0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub single_request: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub single_request_reopen: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub no_tld_query: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub use_vc: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
|
||
pub lookup: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../resolv_conf/enum.Lookup.html" title="enum resolv_conf::Lookup">Lookup</a>>,
|
||
pub family: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../resolv_conf/enum.Family.html" title="enum resolv_conf::Family">Family</a>>,
|
||
// some fields omitted
|
||
}</pre></div><div class='docblock'><p>Represent a resolver configuration, as described in <code>man 5 resolv.conf</code>.
|
||
The options and defaults match those in the linux <code>man</code> page.</p>
|
||
<p>Note: while most fields in the structure are public the <code>search</code> and
|
||
<code>domain</code> fields must be accessed via methods. This is because there are
|
||
few different ways to treat <code>domain</code> field. In GNU libc <code>search</code> and
|
||
<code>domain</code> replace each other (<a href="#method.get_last_search_or_domain"><code>get_last_search_or_domain</code></a>).
|
||
In MacOS <code>/etc/resolve/*</code> files <code>domain</code> is treated in entirely different
|
||
way.</p>
|
||
<p>Also consider using <a href="#method.glibc_normalize"><code>glibc_normalize</code></a> and <a href="#method.get_system_domain"><code>get_system_domain</code></a> to match
|
||
behavior of GNU libc. (latter requires <code>system</code> feature enabled)</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">extern</span> <span class="kw">crate</span> <span class="ident">resolv_conf</span>;
|
||
|
||
<span class="kw">use</span> <span class="ident">std</span>::<span class="ident">net</span>::<span class="ident">Ipv4Addr</span>;
|
||
<span class="kw">use</span> <span class="ident">resolv_conf</span>::{<span class="ident">Config</span>, <span class="ident">ScopedIp</span>};
|
||
|
||
<span class="kw">fn</span> <span class="ident">main</span>() {
|
||
<span class="comment">// Create a new config</span>
|
||
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">config</span> <span class="op">=</span> <span class="ident">Config</span>::<span class="ident">new</span>();
|
||
<span class="ident">config</span>.<span class="ident">nameservers</span>.<span class="ident">push</span>(<span class="ident">ScopedIp</span>::<span class="ident">V4</span>(<span class="ident">Ipv4Addr</span>::<span class="ident">new</span>(<span class="number">8</span>, <span class="number">8</span>, <span class="number">8</span>, <span class="number">8</span>)));
|
||
<span class="ident">config</span>.<span class="ident">set_search</span>(<span class="macro">vec</span><span class="macro">!</span>[<span class="string">"example.com"</span>.<span class="ident">into</span>()]);
|
||
|
||
<span class="comment">// Parse a config</span>
|
||
<span class="kw">let</span> <span class="ident">parsed</span> <span class="op">=</span> <span class="ident">Config</span>::<span class="ident">parse</span>(<span class="string">"nameserver 8.8.8.8\nsearch example.com"</span>).<span class="ident">unwrap</span>();
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">parsed</span>, <span class="ident">config</span>);
|
||
}</pre></div>
|
||
</div><h2 id='fields' class='fields small-section-header'>
|
||
Fields<a href='#fields' class='anchor'></a></h2><span id="structfield.nameservers" class="structfield small-section-header"><a href="#structfield.nameservers" class="anchor field"></a><code id="nameservers.v">nameservers: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../resolv_conf/enum.ScopedIp.html" title="enum resolv_conf::ScopedIp">ScopedIp</a>></code></span><div class='docblock'><p>List of nameservers</p>
|
||
</div><span id="structfield.sortlist" class="structfield small-section-header"><a href="#structfield.sortlist" class="anchor field"></a><code id="sortlist.v">sortlist: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../resolv_conf/enum.Network.html" title="enum resolv_conf::Network">Network</a>></code></span><div class='docblock'><p>List of preferred addresses</p>
|
||
</div><span id="structfield.debug" class="structfield small-section-header"><a href="#structfield.debug" class="anchor field"></a><code id="debug.v">debug: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Enable DNS resolve debugging</p>
|
||
</div><span id="structfield.ndots" class="structfield small-section-header"><a href="#structfield.ndots" class="anchor field"></a><code id="ndots.v">ndots: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class='docblock'><p>Number of dots in name to try absolute resolving first (default 1)</p>
|
||
</div><span id="structfield.timeout" class="structfield small-section-header"><a href="#structfield.timeout" class="anchor field"></a><code id="timeout.v">timeout: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class='docblock'><p>Dns query timeout (default 5 [sec])</p>
|
||
</div><span id="structfield.attempts" class="structfield small-section-header"><a href="#structfield.attempts" class="anchor field"></a><code id="attempts.v">attempts: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u32.html">u32</a></code></span><div class='docblock'><p>Number of attempts to resolve name if server is inaccesible (default 2)</p>
|
||
</div><span id="structfield.rotate" class="structfield small-section-header"><a href="#structfield.rotate" class="anchor field"></a><code id="rotate.v">rotate: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Round-robin selection of servers (default false)</p>
|
||
</div><span id="structfield.no_check_names" class="structfield small-section-header"><a href="#structfield.no_check_names" class="anchor field"></a><code id="no_check_names.v">no_check_names: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Don't check names for validity (default false)</p>
|
||
</div><span id="structfield.inet6" class="structfield small-section-header"><a href="#structfield.inet6" class="anchor field"></a><code id="inet6.v">inet6: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Try AAAA query before A</p>
|
||
</div><span id="structfield.ip6_bytestring" class="structfield small-section-header"><a href="#structfield.ip6_bytestring" class="anchor field"></a><code id="ip6_bytestring.v">ip6_bytestring: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Use reverse lookup of ipv6 using bit-label format described instead
|
||
of nibble format</p>
|
||
</div><span id="structfield.ip6_dotint" class="structfield small-section-header"><a href="#structfield.ip6_dotint" class="anchor field"></a><code id="ip6_dotint.v">ip6_dotint: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Do ipv6 reverse lookups in ip6.int zone instead of ip6.arpa
|
||
(default false)</p>
|
||
</div><span id="structfield.edns0" class="structfield small-section-header"><a href="#structfield.edns0" class="anchor field"></a><code id="edns0.v">edns0: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Enable dns extensions described in RFC 2671</p>
|
||
</div><span id="structfield.single_request" class="structfield small-section-header"><a href="#structfield.single_request" class="anchor field"></a><code id="single_request.v">single_request: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Don't make ipv4 and ipv6 requests simultaneously</p>
|
||
</div><span id="structfield.single_request_reopen" class="structfield small-section-header"><a href="#structfield.single_request_reopen" class="anchor field"></a><code id="single_request_reopen.v">single_request_reopen: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Use same socket for the A and AAAA requests</p>
|
||
</div><span id="structfield.no_tld_query" class="structfield small-section-header"><a href="#structfield.no_tld_query" class="anchor field"></a><code id="no_tld_query.v">no_tld_query: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Don't resolve unqualified name as top level domain</p>
|
||
</div><span id="structfield.use_vc" class="structfield small-section-header"><a href="#structfield.use_vc" class="anchor field"></a><code id="use_vc.v">use_vc: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class='docblock'><p>Force using TCP for DNS resolution</p>
|
||
</div><span id="structfield.lookup" class="structfield small-section-header"><a href="#structfield.lookup" class="anchor field"></a><code id="lookup.v">lookup: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../resolv_conf/enum.Lookup.html" title="enum resolv_conf::Lookup">Lookup</a>></code></span><div class='docblock'><p>The order in which databases should be searched during a lookup
|
||
<strong>(openbsd-only)</strong></p>
|
||
</div><span id="structfield.family" class="structfield small-section-header"><a href="#structfield.family" class="anchor field"></a><code id="family.v">family: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../resolv_conf/enum.Family.html" title="enum resolv_conf::Family">Family</a>></code></span><div class='docblock'><p>The order in which internet protocol families should be prefered
|
||
<strong>(openbsd-only)</strong></p>
|
||
</div><h2 id='methods' class='small-section-header'>Methods<a href='#methods' class='anchor'></a></h2><h3 id='impl' class='impl'><code class='in-band'>impl <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl' class='anchor'></a><a class='srclink' href='../src/resolv_conf/config.rs.html#105-293' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.new' class="method"><code id='new.v'>pub fn <a href='#method.new' class='fnname'>new</a>() -> <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a class='srclink' href='../src/resolv_conf/config.rs.html#132-156' title='goto source code'>[src]</a></h4><div class='docblock'><p>Create a new <code>Config</code> object with default values.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">resolv_conf</span>::<span class="ident">Config</span>;
|
||
<span class="kw">let</span> <span class="ident">config</span> <span class="op">=</span> <span class="ident">Config</span>::<span class="ident">new</span>();
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">nameservers</span>, <span class="macro">vec</span><span class="macro">!</span>[]);
|
||
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">get_domain</span>().<span class="ident">is_none</span>());
|
||
<span class="macro">assert</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">get_search</span>().<span class="ident">is_none</span>());
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">sortlist</span>, <span class="macro">vec</span><span class="macro">!</span>[]);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">debug</span>, <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">ndots</span>, <span class="number">1</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">timeout</span>, <span class="number">5</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">attempts</span>, <span class="number">2</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">rotate</span>, <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">no_check_names</span>, <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">inet6</span>, <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">ip6_bytestring</span>, <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">ip6_dotint</span>, <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">edns0</span>, <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">single_request</span>, <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">single_request_reopen</span>, <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">no_tld_query</span>, <span class="bool-val">false</span>);
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">config</span>.<span class="ident">use_vc</span>, <span class="bool-val">false</span>);</pre></div>
|
||
</div><h4 id='method.parse' class="method"><code id='parse.v'>pub fn <a href='#method.parse' class='fnname'>parse</a><T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a><<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a>>>(buf: T) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><<a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a>, <a class="enum" href="../resolv_conf/enum.ParseError.html" title="enum resolv_conf::ParseError">ParseError</a>></code><a class='srclink' href='../src/resolv_conf/config.rs.html#177-179' title='goto source code'>[src]</a></h4><div class='docblock'><p>Parse a buffer and return the corresponding <code>Config</code> object.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">resolv_conf</span>::{<span class="ident">ScopedIp</span>, <span class="ident">Config</span>};
|
||
<span class="kw">let</span> <span class="ident">config_str</span> <span class="op">=</span> <span class="string">"# /etc/resolv.conf
|
||
nameserver 8.8.8.8
|
||
nameserver 8.8.4.4
|
||
search example.com sub.example.com
|
||
options ndots:8 attempts:8"</span>;
|
||
|
||
<span class="comment">// Parse the config</span>
|
||
<span class="kw">let</span> <span class="ident">parsed_config</span> <span class="op">=</span> <span class="ident">Config</span>::<span class="ident">parse</span>(<span class="kw-2">&</span><span class="ident">config_str</span>).<span class="ident">expect</span>(<span class="string">"Failed to parse config"</span>);
|
||
|
||
<span class="comment">// Print the config</span>
|
||
<span class="macro">println</span><span class="macro">!</span>(<span class="string">"{:?}"</span>, <span class="ident">parsed_config</span>);</pre></div>
|
||
</div><h4 id='method.get_last_search_or_domain' class="method"><code id='get_last_search_or_domain.v'>pub fn <a href='#method.get_last_search_or_domain' class='fnname'>get_last_search_or_domain</a><'a>(&'a self) -> <a class="struct" href="../resolv_conf/struct.DomainIter.html" title="struct resolv_conf::DomainIter">DomainIter</a><'a></code><a class='srclink' href='../src/resolv_conf/config.rs.html#201-211' title='goto source code'>[src]</a></h4><div class='docblock'><p>Return the suffixes declared in the last "domain" or "search" directive.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered">
|
||
<span class="kw">use</span> <span class="ident">resolv_conf</span>::{<span class="ident">ScopedIp</span>, <span class="ident">Config</span>};
|
||
<span class="kw">let</span> <span class="ident">config_str</span> <span class="op">=</span> <span class="string">"search example.com sub.example.com\ndomain localdomain"</span>;
|
||
<span class="kw">let</span> <span class="ident">parsed_config</span> <span class="op">=</span> <span class="ident">Config</span>::<span class="ident">parse</span>(<span class="kw-2">&</span><span class="ident">config_str</span>).<span class="ident">expect</span>(<span class="string">"Failed to parse config"</span>);
|
||
<span class="kw">let</span> <span class="ident">domains</span> <span class="op">=</span> <span class="ident">parsed_config</span>.<span class="ident">get_last_search_or_domain</span>()
|
||
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">domain</span><span class="op">|</span> <span class="ident">domain</span>.<span class="ident">clone</span>())
|
||
.<span class="ident">collect</span>::<span class="op"><</span><span class="ident">Vec</span><span class="op"><</span><span class="ident">String</span><span class="op">></span><span class="op">></span>();
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">domains</span>, <span class="macro">vec</span><span class="macro">!</span>[<span class="ident">String</span>::<span class="ident">from</span>(<span class="string">"localdomain"</span>)]);
|
||
|
||
<span class="kw">let</span> <span class="ident">config_str</span> <span class="op">=</span> <span class="string">"domain localdomain\nsearch example.com sub.example.com"</span>;
|
||
<span class="kw">let</span> <span class="ident">parsed_config</span> <span class="op">=</span> <span class="ident">Config</span>::<span class="ident">parse</span>(<span class="kw-2">&</span><span class="ident">config_str</span>).<span class="ident">expect</span>(<span class="string">"Failed to parse config"</span>);
|
||
<span class="kw">let</span> <span class="ident">domains</span> <span class="op">=</span> <span class="ident">parsed_config</span>.<span class="ident">get_last_search_or_domain</span>()
|
||
.<span class="ident">map</span>(<span class="op">|</span><span class="ident">domain</span><span class="op">|</span> <span class="ident">domain</span>.<span class="ident">clone</span>())
|
||
.<span class="ident">collect</span>::<span class="op"><</span><span class="ident">Vec</span><span class="op"><</span><span class="ident">String</span><span class="op">></span><span class="op">></span>();
|
||
<span class="macro">assert_eq</span><span class="macro">!</span>(<span class="ident">domains</span>, <span class="macro">vec</span><span class="macro">!</span>[<span class="ident">String</span>::<span class="ident">from</span>(<span class="string">"example.com"</span>), <span class="ident">String</span>::<span class="ident">from</span>(<span class="string">"sub.example.com"</span>)]);</pre></div>
|
||
</div><h4 id='method.get_domain' class="method"><code id='get_domain.v'>pub fn <a href='#method.get_domain' class='fnname'>get_domain</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></code><a class='srclink' href='../src/resolv_conf/config.rs.html#214-216' title='goto source code'>[src]</a></h4><div class='docblock'><p>Return the domain declared in the last "domain" directive.</p>
|
||
</div><h4 id='method.get_search' class="method"><code id='get_search.v'>pub fn <a href='#method.get_search' class='fnname'>get_search</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><&<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>></code><a class='srclink' href='../src/resolv_conf/config.rs.html#219-221' title='goto source code'>[src]</a></h4><div class='docblock'><p>Return the domains declared in the last "search" directive.</p>
|
||
</div><h4 id='method.set_domain' class="method"><code id='set_domain.v'>pub fn <a href='#method.set_domain' class='fnname'>set_domain</a>(&mut self, domain: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>)</code><a class='srclink' href='../src/resolv_conf/config.rs.html#224-227' title='goto source code'>[src]</a></h4><div class='docblock'><p>Set the domain corresponding to the "domain" directive.</p>
|
||
</div><h4 id='method.set_search' class="method"><code id='set_search.v'>pub fn <a href='#method.set_search' class='fnname'>set_search</a>(&mut self, search: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>>)</code><a class='srclink' href='../src/resolv_conf/config.rs.html#230-233' title='goto source code'>[src]</a></h4><div class='docblock'><p>Set the domains corresponding the "search" directive.</p>
|
||
</div><h4 id='method.glibc_normalize' class="method"><code id='glibc_normalize.v'>pub fn <a href='#method.glibc_normalize' class='fnname'>glibc_normalize</a>(&mut self)</code><a class='srclink' href='../src/resolv_conf/config.rs.html#248-254' title='goto source code'>[src]</a></h4><div class='docblock'><p>Normalize config according to glibc rulees</p>
|
||
<p>Currently this method does the following things:</p>
|
||
<ol>
|
||
<li>Truncates list of nameservers to 3 at max</li>
|
||
<li>Truncates search list to 6 at max</li>
|
||
</ol>
|
||
<p>Other normalizations may be added in future as long as they hold true
|
||
for a particular GNU libc implementation.</p>
|
||
<p>Note: this method is not called after parsing, because we think it's
|
||
not forward-compatible to rely on such small and ugly limits. Still,
|
||
it's useful to keep implementation as close to glibc as possible.</p>
|
||
</div><h4 id='method.get_nameservers_or_local' class="method"><code id='get_nameservers_or_local.v'>pub fn <a href='#method.get_nameservers_or_local' class='fnname'>get_nameservers_or_local</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a><<a class="enum" href="../resolv_conf/enum.ScopedIp.html" title="enum resolv_conf::ScopedIp">ScopedIp</a>></code><a class='srclink' href='../src/resolv_conf/config.rs.html#257-266' title='goto source code'>[src]</a></h4><div class='docblock'><p>Get nameserver or on the local machine</p>
|
||
</div><h4 id='method.get_system_domain' class="method"><code id='get_system_domain.v'>pub fn <a href='#method.get_system_domain' class='fnname'>get_system_domain</a>(&self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a><<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>></code><a class='srclink' href='../src/resolv_conf/config.rs.html#273-292' title='goto source code'>[src]</a></h4><div class='docblock'><p>Get domain from config or fallback to the suffix of a hostname</p>
|
||
<p>This is how glibc finds out a hostname. This method requires
|
||
<code>system</code> feature enabled.</p>
|
||
</div></div><h2 id='implementations' class='small-section-header'>Trait Implementations<a href='#implementations' class='anchor'></a></h2><div id='implementations-list'><h3 id='impl-Clone' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-Clone' class='anchor'></a><a class='srclink' href='../src/resolv_conf/config.rs.html#52' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.clone' class="method hidden"><code id='clone.v'>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone' class='fnname'>clone</a>(&self) -> <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a class='srclink' href='../src/resolv_conf/config.rs.html#52' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
|
||
</div><h4 id='method.clone_from' class="method hidden"><code id='clone_from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from' class='fnname'>clone_from</a>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>Self)</code><span class='since' title='Stable since Rust version 1.0.0'>1.0.0</span><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/clone.rs.html#131-133' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
|
||
</div></div><h3 id='impl-Debug' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-Debug' class='anchor'></a><a class='srclink' href='../src/resolv_conf/config.rs.html#52' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.fmt' class="method hidden"><code id='fmt.v'>fn <a href='https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt' class='fnname'>fmt</a>(&self, f: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code><a class='srclink' href='../src/resolv_conf/config.rs.html#52' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
|
||
</div></div><h3 id='impl-Display' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-Display' class='anchor'></a><a class='srclink' href='../src/resolv_conf/config.rs.html#295-376' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.fmt-1' class="method hidden"><code id='fmt.v-1'>fn <a href='https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt' class='fnname'>fmt</a>(&self, fmt: &mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>) -> <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code><a class='srclink' href='../src/resolv_conf/config.rs.html#296-375' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></p>
|
||
</div></div><h3 id='impl-Eq' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-Eq' class='anchor'></a><a class='srclink' href='../src/resolv_conf/config.rs.html#52' title='goto source code'>[src]</a></h3><div class='impl-items'></div><h3 id='impl-PartialEq%3CConfig%3E' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a><<a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a>> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-PartialEq%3CConfig%3E' class='anchor'></a><a class='srclink' href='../src/resolv_conf/config.rs.html#52' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.eq' class="method hidden"><code id='eq.v'>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq' class='fnname'>eq</a>(&self, other: &<a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../src/resolv_conf/config.rs.html#52' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></p>
|
||
</div><h4 id='method.ne' class="method hidden"><code id='ne.v'>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne' class='fnname'>ne</a>(&self, other: &<a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a>) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code><a class='srclink' href='../src/resolv_conf/config.rs.html#52' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>This method tests for <code>!=</code>.</p>
|
||
</div></div><h3 id='impl-StructuralEq' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralEq.html" title="trait core::marker::StructuralEq">StructuralEq</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-StructuralEq' class='anchor'></a><a class='srclink' href='../src/resolv_conf/config.rs.html#52' title='goto source code'>[src]</a></h3><div class='impl-items'></div><h3 id='impl-StructuralPartialEq' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.StructuralPartialEq.html" title="trait core::marker::StructuralPartialEq">StructuralPartialEq</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-StructuralPartialEq' class='anchor'></a><a class='srclink' href='../src/resolv_conf/config.rs.html#52' title='goto source code'>[src]</a></h3><div class='impl-items'></div></div><h2 id='synthetic-implementations' class='small-section-header'>Auto Trait Implementations<a href='#synthetic-implementations' class='anchor'></a></h2><div id='synthetic-implementations-list'><h3 id='impl-RefUnwindSafe' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.RefUnwindSafe.html" title="trait std::panic::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-RefUnwindSafe' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Send' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-Send' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-Sync' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-Unpin' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-Unpin' class='anchor'></a></h3><div class='impl-items'></div><h3 id='impl-UnwindSafe' class='impl'><code class='in-band'>impl <a class="trait" href="https://doc.rust-lang.org/nightly/std/panic/trait.UnwindSafe.html" title="trait std::panic::UnwindSafe">UnwindSafe</a> for <a class="struct" href="../resolv_conf/struct.Config.html" title="struct resolv_conf::Config">Config</a></code><a href='#impl-UnwindSafe' class='anchor'></a></h3><div class='impl-items'></div></div><h2 id='blanket-implementations' class='small-section-header'>Blanket Implementations<a href='#blanket-implementations' class='anchor'></a></h2><div id='blanket-implementations-list'><h3 id='impl-Any' class='impl'><code class='in-band'>impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br> T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href='#impl-Any' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#108-112' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.type_id' class="method hidden"><code id='type_id.v'>fn <a href='https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id' class='fnname'>type_id</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/any.rs.html#109-111' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
|
||
</div></div><h3 id='impl-Borrow%3CT%3E' class='impl'><code class='in-band'>impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> for T <span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href='#impl-Borrow%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213-217' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow' class="method hidden"><code id='borrow.v'>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow' class='fnname'>borrow</a>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&</a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#214-216' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
|
||
</div></div><h3 id='impl-BorrowMut%3CT%3E' class='impl'><code class='in-band'>impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> for T <span class="where fmt-newline">where<br> T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href='#impl-BorrowMut%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220-224' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.borrow_mut' class="method hidden"><code id='borrow_mut.v'>fn <a href='https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut' class='fnname'>borrow_mut</a>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221-223' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
|
||
</div></div><h3 id='impl-From%3CT%3E' class='impl'><code class='in-band'>impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</code><a href='#impl-From%3CT%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#564-568' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.from' class="method hidden"><code id='from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from' class='fnname'>from</a>(t: T) -> T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#565-567' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
||
</div></div><h3 id='impl-Into%3CU%3E' class='impl'><code class='in-band'>impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a><T>, </span></code><a href='#impl-Into%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#553-560' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.into' class="method hidden"><code id='into.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into' class='fnname'>into</a>(self) -> U</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#557-559' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
||
</div></div><h3 id='impl-ToOwned' class='impl'><code class='in-band'>impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>, </span></code><a href='#impl-ToOwned' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#80-92' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Owned' class="type"><code id='Owned.t'>type <a href='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned' class="type">Owned</a> = T</code></h4><div class='docblock'><p>The resulting type after obtaining ownership.</p>
|
||
</div><h4 id='method.to_owned' class="method hidden"><code id='to_owned.v'>fn <a href='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned' class='fnname'>to_owned</a>(&self) -> T</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#85-87' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
|
||
</div><h4 id='method.clone_into' class="method hidden"><code id='clone_into.v'>fn <a href='https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into' class='fnname'>clone_into</a>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&mut </a>T)</code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#89-91' title='goto source code'>[src]</a></h4><div class='stability hidden'><div class='stab unstable'><details><summary><span class='emoji'>🔬</span> This is a nightly-only experimental API. (<code>toowned_clone_into</code>)</summary><p>recently added</p>
|
||
</details></div></div><div class='docblock hidden'><p>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
|
||
</div></div><h3 id='impl-ToString' class='impl'><code class='in-band'>impl<T> <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T <span class="where fmt-newline">where<br> T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>, </span></code><a href='#impl-ToString' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2160-2170' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='method.to_string' class="method hidden"><code id='to_string.v'>default fn <a href='https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string' class='fnname'>to_string</a>(&self) -> <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/alloc/string.rs.html#2162-2169' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/nightly/alloc/string/trait.ToString.html#tymethod.to_string">Read more</a></p>
|
||
</div></div><h3 id='impl-TryFrom%3CU%3E' class='impl'><code class='in-band'>impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a><T>, </span></code><a href='#impl-TryFrom%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#601-610' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error' class="type"><code id='Error.t'>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error' class="type">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
|
||
</div><h4 id='method.try_from' class="method hidden"><code id='try_from.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from' class='fnname'>try_from</a>(value: U) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <T as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><U>>::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#607-609' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
||
</div></div><h3 id='impl-TryInto%3CU%3E' class='impl'><code class='in-band'>impl<T, U> <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> for T <span class="where fmt-newline">where<br> U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>, </span></code><a href='#impl-TryInto%3CU%3E' class='anchor'></a><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#587-596' title='goto source code'>[src]</a></h3><div class='impl-items'><h4 id='associatedtype.Error-1' class="type"><code id='Error.t-1'>type <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error' class="type">Error</a> = <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></code></h4><div class='docblock'><p>The type returned in the event of a conversion error.</p>
|
||
</div><h4 id='method.try_into' class="method hidden"><code id='try_into.v'>fn <a href='https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into' class='fnname'>try_into</a>(self) -> <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <U as <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a><T>>::<a class="type" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>></code><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#593-595' title='goto source code'>[src]</a></h4><div class='docblock hidden'><p>Performs the conversion.</p>
|
||
</div></div></div></section><section id="search" class="content hidden"></section><section class="footer"></section><script>window.rootPath = "../";window.currentCrate = "resolv_conf";</script><script src="../aliases.js"></script><script src="../main.js"></script><script defer src="../search-index.js"></script></body></html> |