ssw/doc/config/builder/struct.ConfigBuilder.html
2023-01-09 19:23:20 +01:00

113 lines
56 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

This file contains Unicode characters that might be confused with other characters. If you think that this is intentional, you can safely ignore this warning. Use the Escape button to reveal them.

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A configuration builder"><meta name="keywords" content="rust, rustlang, rust-lang, ConfigBuilder"><title>ConfigBuilder in config::builder - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><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="../../ayu.css" disabled><link rel="stylesheet" type="text/css" href="../../dark.css" disabled><link rel="stylesheet" type="text/css" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../main.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../config/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../config/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">ConfigBuilder</a></h2><div class="sidebar-elems"><section><div class="block"><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><ul><li><a href="#method.add_async_source">add_async_source</a></li><li><a href="#method.add_async_source-1">add_async_source</a></li><li><a href="#method.add_source">add_source</a></li><li><a href="#method.add_source-1">add_source</a></li><li><a href="#method.build">build</a></li><li><a href="#method.build-1">build</a></li><li><a href="#method.build_cloned">build_cloned</a></li><li><a href="#method.build_cloned-1">build_cloned</a></li><li><a href="#method.set_default">set_default</a></li><li><a href="#method.set_override">set_override</a></li><li><a href="#method.set_override_option">set_override_option</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><ul><li><a href="#impl-Clone-for-ConfigBuilder%3CSt%3E">Clone</a></li><li><a href="#impl-Debug-for-ConfigBuilder%3CSt%3E">Debug</a></li><li><a href="#impl-Default-for-ConfigBuilder%3CSt%3E">Default</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul><li><a href="#impl-RefUnwindSafe-for-ConfigBuilder%3CSt%3E">RefUnwindSafe</a></li><li><a href="#impl-Send-for-ConfigBuilder%3CSt%3E">Send</a></li><li><a href="#impl-Sync-for-ConfigBuilder%3CSt%3E">Sync</a></li><li><a href="#impl-Unpin-for-ConfigBuilder%3CSt%3E">Unpin</a></li><li><a href="#impl-UnwindSafe-for-ConfigBuilder%3CSt%3E">UnwindSafe</a></li></ul></div><div class="block"><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><ul><li><a href="#impl-Any-for-ConfigBuilder%3CSt%3E">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-ConfigBuilder%3CSt%3E">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-ConfigBuilder%3CSt%3E">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-ConfigBuilder%3CSt%3E">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-ConfigBuilder%3CSt%3E">Into&lt;U&gt;</a></li><li><a href="#impl-ToOwned-for-ConfigBuilder%3CSt%3E">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-ConfigBuilder%3CSt%3E">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-ConfigBuilder%3CSt%3E">TryInto&lt;U&gt;</a></li></ul></div></section><h2 class="location"><a href="index.html">In config::builder</a></h2></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../../config/index.html"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></a><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><button type="button">?</button></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav></div><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn"><span class="in-band">Struct <a href="../index.html">config</a>::<wbr><a href="index.html">builder</a>::<wbr><a class="struct" href="#">ConfigBuilder</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></span></h1><span class="out-of-band"><a class="srclink" href="../../src/config/builder.rs.html#90-94">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="docblock item-decl"><pre class="rust struct"><code>pub struct ConfigBuilder&lt;St:&nbsp;<a class="trait" href="trait.BuilderState.html" title="trait config::builder::BuilderState">BuilderState</a>&gt; { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A configuration builder</p>
<p>It registers ordered sources of configuration to later build consistent <a href="../struct.Config.html" title="Config"><code>Config</code></a> from them.
Configuration sources it defines are defaults, <a href="../trait.Source.html" title="Source"><code>Source</code></a>s and overrides.</p>
<p>Defaults are always loaded first and can be overwritten by any of two other sources.
Overrides are always loaded last, thus cannot be overridden.
Both can be only set explicitly key by key in code
using <a href="struct.ConfigBuilder.html#method.set_default"><code>set_default</code></a> or <a href="struct.ConfigBuilder.html#method.set_override"><code>set_override</code></a>.</p>
<p>An intermediate category, <a href="../trait.Source.html" title="Source"><code>Source</code></a>, set groups of keys at once implicitly using data coming from external sources
like files, environment variables or others that one implements. Defining a <a href="../trait.Source.html" title="Source"><code>Source</code></a> is as simple as implementing
a trait for a struct.</p>
<p>Adding sources, setting defaults and overrides does not invoke any I/O nor builds a config.
It happens on demand when <a href="struct.ConfigBuilder.html#method.build"><code>build</code></a> (or its alternative) is called.
Therefore all errors, related to any of the <a href="../trait.Source.html" title="Source"><code>Source</code></a> will only show up then.</p>
<h2 id="sync-and-async-builder"><a href="#sync-and-async-builder">Sync and async builder</a></h2>
<p><a href="struct.ConfigBuilder.html" title="ConfigBuilder"><code>ConfigBuilder</code></a> uses type parameter to keep track of builder state.</p>
<p>In <a href="struct.DefaultState.html" title="DefaultState"><code>DefaultState</code></a> builder only supports <a href="../trait.Source.html" title="Source"><code>Source</code></a>s</p>
<p>In <a href="struct.AsyncState.html" title="AsyncState"><code>AsyncState</code></a> it supports both <a href="../trait.Source.html" title="Source"><code>Source</code></a>s and <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a>s at the price of building using <code>async fn</code>.</p>
<h2 id="examples"><a href="#examples">Examples</a></h2>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">builder</span> <span class="op">=</span> <span class="ident">Config::builder</span>()
.<span class="ident">set_default</span>(<span class="string">&quot;default&quot;</span>, <span class="string">&quot;1&quot;</span>)<span class="question-mark">?</span>
.<span class="ident">add_source</span>(<span class="ident">File::new</span>(<span class="string">&quot;config/settings&quot;</span>, <span class="ident">FileFormat::Json</span>))
<span class="comment">// .add_async_source(...)</span>
.<span class="ident">set_override</span>(<span class="string">&quot;override&quot;</span>, <span class="string">&quot;1&quot;</span>)<span class="question-mark">?</span>;
<span class="kw">match</span> <span class="ident">builder</span>.<span class="ident">build</span>() {
<span class="prelude-val">Ok</span>(<span class="ident">config</span>) =&gt; {
<span class="comment">// use your config</span>
},
<span class="prelude-val">Err</span>(<span class="ident">e</span>) =&gt; {
<span class="comment">// something went wrong</span>
}
}</code></pre></div>
<p>If any <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a> is used, the builder will transition to <a href="struct.AsyncState.html" title="AsyncState"><code>AsyncState</code></a>.
In such case, it is required to <em>await</em> calls to <a href="struct.ConfigBuilder.html#method.build"><code>build</code></a> and its non-consuming sibling.</p>
<p>Calls can be not chained as well</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">builder</span> <span class="op">=</span> <span class="ident">Config::builder</span>();
<span class="ident">builder</span> <span class="op">=</span> <span class="ident">builder</span>.<span class="ident">set_default</span>(<span class="string">&quot;default&quot;</span>, <span class="string">&quot;1&quot;</span>)<span class="question-mark">?</span>;
<span class="ident">builder</span> <span class="op">=</span> <span class="ident">builder</span>.<span class="ident">add_source</span>(<span class="ident">File::new</span>(<span class="string">&quot;config/settings&quot;</span>, <span class="ident">FileFormat::Json</span>));
<span class="ident">builder</span> <span class="op">=</span> <span class="ident">builder</span>.<span class="ident">add_source</span>(<span class="ident">File::new</span>(<span class="string">&quot;config/settings.prod&quot;</span>, <span class="ident">FileFormat::Json</span>));
<span class="ident">builder</span> <span class="op">=</span> <span class="ident">builder</span>.<span class="ident">set_override</span>(<span class="string">&quot;override&quot;</span>, <span class="string">&quot;1&quot;</span>)<span class="question-mark">?</span>;</code></pre></div>
<p>Calling <a href="../struct.Config.html#method.builder"><code>Config::builder</code></a> yields builder in the default state.
If having an asynchronous state as the initial state is desired, <em>turbofish</em> notation needs to be used.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">builder</span> <span class="op">=</span> <span class="ident">ConfigBuilder</span>::<span class="op">&lt;</span><span class="ident">AsyncState</span><span class="op">&gt;</span><span class="ident">::default</span>();</code></pre></div>
<p>If for some reason acquiring builder in default state is required without calling <a href="../struct.Config.html#method.builder"><code>Config::builder</code></a>
it can also be achieved.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">builder</span> <span class="op">=</span> <span class="ident">ConfigBuilder</span>::<span class="op">&lt;</span><span class="ident">DefaultState</span><span class="op">&gt;</span><span class="ident">::default</span>();</code></pre></div>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#140-196">source</a></span><a href="#impl-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;St:&nbsp;<a class="trait" href="trait.BuilderState.html" title="trait config::builder::BuilderState">BuilderState</a>&gt; <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_default" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#150-158">source</a></span><h4 class="code-header">pub fn <a href="#method.set_default" class="fnname">set_default</a>&lt;S, T&gt;(self, key: S, value: T) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, <a class="enum" href="../enum.ConfigError.html" title="enum config::ConfigError">ConfigError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="../struct.Value.html" title="struct config::Value">Value</a>&gt;,&nbsp;</span></h4></section></summary><div class="docblock"><p>Set a default <code>value</code> at <code>key</code></p>
<p>This value can be overwritten by any <a href="../trait.Source.html" title="Source"><code>Source</code></a>, <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a> or override.</p>
<h5 id="errors"><a href="#errors">Errors</a></h5>
<p>Fails if <code>Expression::from_str(key)</code> fails.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_override" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#167-175">source</a></span><h4 class="code-header">pub fn <a href="#method.set_override" class="fnname">set_override</a>&lt;S, T&gt;(self, key: S, value: T) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, <a class="enum" href="../enum.ConfigError.html" title="enum config::ConfigError">ConfigError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="../struct.Value.html" title="struct config::Value">Value</a>&gt;,&nbsp;</span></h4></section></summary><div class="docblock"><p>Set an override</p>
<p>This function sets an overwrite value. It will not be altered by any default, <a href="../trait.Source.html" title="Source"><code>Source</code></a> nor <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a></p>
<h5 id="errors-1"><a href="#errors-1">Errors</a></h5>
<p>Fails if <code>Expression::from_str(key)</code> fails.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.set_override_option" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#185-195">source</a></span><h4 class="code-header">pub fn <a href="#method.set_override_option" class="fnname">set_override_option</a>&lt;S, T&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;key: S,<br>&nbsp;&nbsp;&nbsp;&nbsp;value: <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;T&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;Self, <a class="enum" href="../enum.ConfigError.html" title="enum config::ConfigError">ConfigError</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;S: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.str.html">str</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="../struct.Value.html" title="struct config::Value">Value</a>&gt;,&nbsp;</span></h4></section></summary><div class="docblock"><p>Sets an override if value is Some(_)</p>
<p>This function sets an overwrite value if Some(_) is passed. If None is passed, this function does nothing.
It will not be altered by any default, <a href="../trait.Source.html" title="Source"><code>Source</code></a> nor <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a></p>
<h5 id="errors-2"><a href="#errors-2">Errors</a></h5>
<p>Fails if <code>Expression::from_str(key)</code> fails.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ConfigBuilder%3CDefaultState%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#198-286">source</a></span><a href="#impl-ConfigBuilder%3CDefaultState%3E" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;<a class="struct" href="struct.DefaultState.html" title="struct config::builder::DefaultState">DefaultState</a>&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_source" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#205-211">source</a></span><h4 class="code-header">pub fn <a href="#method.add_source" class="fnname">add_source</a>&lt;T&gt;(self, source: T) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../trait.Source.html" title="trait config::Source">Source</a> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,&nbsp;</span></h4></section></summary><div class="docblock"><p>Registers new <a href="../trait.Source.html" title="Source"><code>Source</code></a> in this builder.</p>
<p>Calling this method does not invoke any I/O. <a href="../trait.Source.html" title="Source"><code>Source</code></a> is only saved in internal register for later use.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_async_source" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#216-234">source</a></span><h4 class="code-header">pub fn <a href="#method.add_async_source" class="fnname">add_async_source</a>&lt;T&gt;(self, source: T) -&gt; <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;<a class="struct" href="struct.AsyncState.html" title="struct config::builder::AsyncState">AsyncState</a>&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../trait.AsyncSource.html" title="trait config::AsyncSource">AsyncSource</a> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,&nbsp;</span></h4></section></summary><div class="docblock"><p>Registers new <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a> in this builder and forces transition to <a href="struct.AsyncState.html" title="AsyncState"><code>AsyncState</code></a>.</p>
<p>Calling this method does not invoke any I/O. <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a> is only saved in internal register for later use.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#244-246">source</a></span><h4 class="code-header">pub fn <a href="#method.build" class="fnname">build</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../struct.Config.html" title="struct config::Config">Config</a>, <a class="enum" href="../enum.ConfigError.html" title="enum config::ConfigError">ConfigError</a>&gt;</h4></section></summary><div class="docblock"><p>Reads all registered <a href="../trait.Source.html" title="Source"><code>Source</code></a>s.</p>
<p>This is the method that invokes all I/O operations.
For a non consuming alternative see <a href="struct.ConfigBuilder.html#method.build_cloned"><code>build_cloned</code></a></p>
<h5 id="errors-3"><a href="#errors-3">Errors</a></h5>
<p>If source collection fails, be it technical reasons or related to inability to read data as <code>Config</code> for different reasons,
this method returns error.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_cloned" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#256-262">source</a></span><h4 class="code-header">pub fn <a href="#method.build_cloned" class="fnname">build_cloned</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../struct.Config.html" title="struct config::Config">Config</a>, <a class="enum" href="../enum.ConfigError.html" title="enum config::ConfigError">ConfigError</a>&gt;</h4></section></summary><div class="docblock"><p>Reads all registered <a href="../trait.Source.html" title="Source"><code>Source</code></a>s.</p>
<p>Similar to <a href="struct.ConfigBuilder.html#method.build"><code>build</code></a>, but it does not take ownership of <code>ConfigBuilder</code> to allow later reuse.
Internally it clones data to achieve it.</p>
<h5 id="errors-4"><a href="#errors-4">Errors</a></h5>
<p>If source collection fails, be it technical reasons or related to inability to read data as <code>Config</code> for different reasons,
this method returns error.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-ConfigBuilder%3CAsyncState%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#288-370">source</a></span><a href="#impl-ConfigBuilder%3CAsyncState%3E" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;<a class="struct" href="struct.AsyncState.html" title="struct config::builder::AsyncState">AsyncState</a>&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_source-1" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#295-301">source</a></span><h4 class="code-header">pub fn <a href="#method.add_source-1" class="fnname">add_source</a>&lt;T&gt;(self, source: T) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../trait.Source.html" title="trait config::Source">Source</a> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,&nbsp;</span></h4></section></summary><div class="docblock"><p>Registers new <a href="../trait.Source.html" title="Source"><code>Source</code></a> in this builder.</p>
<p>Calling this method does not invoke any I/O. <a href="../trait.Source.html" title="Source"><code>Source</code></a> is only saved in internal register for later use.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.add_async_source-1" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#307-313">source</a></span><h4 class="code-header">pub fn <a href="#method.add_async_source-1" class="fnname">add_async_source</a>&lt;T&gt;(self, source: T) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="../trait.AsyncSource.html" title="trait config::AsyncSource">AsyncSource</a> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,&nbsp;</span></h4></section></summary><div class="docblock"><p>Registers new <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a> in this builder.</p>
<p>Calling this method does not invoke any I/O. <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a> is only saved in internal register for later use.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build-1" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#323-325">source</a></span><h4 class="code-header">pub async fn <a href="#method.build-1" class="fnname">build</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../struct.Config.html" title="struct config::Config">Config</a>, <a class="enum" href="../enum.ConfigError.html" title="enum config::ConfigError">ConfigError</a>&gt;</h4></section></summary><div class="docblock"><p>Reads all registered defaults, <a href="../trait.Source.html" title="Source"><code>Source</code></a>s, <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a>s and overrides.</p>
<p>This is the method that invokes all I/O operations.
For a non consuming alternative see <a href="struct.ConfigBuilder.html#method.build_cloned"><code>build_cloned</code></a></p>
<h5 id="errors-5"><a href="#errors-5">Errors</a></h5>
<p>If source collection fails, be it technical reasons or related to inability to read data as <code>Config</code> for different reasons,
this method returns error.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.build_cloned-1" class="method has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#335-342">source</a></span><h4 class="code-header">pub async fn <a href="#method.build_cloned-1" class="fnname">build_cloned</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../struct.Config.html" title="struct config::Config">Config</a>, <a class="enum" href="../enum.ConfigError.html" title="enum config::ConfigError">ConfigError</a>&gt;</h4></section></summary><div class="docblock"><p>Reads all registered defaults, <a href="../trait.Source.html" title="Source"><code>Source</code></a>s, <a href="../trait.AsyncSource.html" title="AsyncSource"><code>AsyncSource</code></a>s and overrides.</p>
<p>Similar to <a href="struct.ConfigBuilder.html#method.build"><code>build</code></a>, but it does not take ownership of <code>ConfigBuilder</code> to allow later reuse.
Internally it clones data to achieve it.</p>
<h5 id="errors-6"><a href="#errors-6">Errors</a></h5>
<p>If source collection fails, be it technical reasons or related to inability to read data as <code>Config</code> for different reasons,
this method returns error.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#89">source</a></span><a href="#impl-Clone-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;St:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> + <a class="trait" href="trait.BuilderState.html" title="trait config::builder::BuilderState">BuilderState</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#89">source</a></span><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt;</h4></section></summary><div class='docblock'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html#method.clone_from" class="fnname">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&amp;</a>Self)</h4></section></summary><div class='docblock'><p>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html#method.clone_from">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#89">source</a></span><a href="#impl-Debug-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;St:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> + <a class="trait" href="trait.BuilderState.html" title="trait config::builder::BuilderState">BuilderState</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#89">source</a></span><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.64.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.64.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Default-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#89">source</a></span><a href="#impl-Default-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;St:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/default/trait.Default.html" title="trait core::default::Default">Default</a> + <a class="trait" href="trait.BuilderState.html" title="trait config::builder::BuilderState">BuilderState</a>&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt;</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.default" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="../../src/config/builder.rs.html#89">source</a></span><a href="#method.default" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/default/trait.Default.html#tymethod.default" class="fnname">default</a>() -&gt; <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt;</h4></section></summary><div class='docblock'><p>Returns the “default value” for a type. <a href="https://doc.rust-lang.org/1.64.0/core/default/trait.Default.html#tymethod.default">Read more</a></p>
</div></details></div></details></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"><section id="impl-RefUnwindSafe-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;St&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a>,&nbsp;</span></h3></section><section id="impl-Send-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><a href="#impl-Send-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;St&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a>,&nbsp;</span></h3></section><section id="impl-Sync-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><a href="#impl-Sync-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;St&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a>,&nbsp;</span></h3></section><section id="impl-Unpin-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><a href="#impl-Unpin-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;St&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a>,&nbsp;</span></h3></section><section id="impl-UnwindSafe-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><a href="#impl-UnwindSafe-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;St&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.ConfigBuilder.html" title="struct config::builder::ConfigBuilder">ConfigBuilder</a>&lt;St&gt; <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;St: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a>,&nbsp;</span></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/any.rs.html#203">source</a></span><a href="#impl-Any-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/any.rs.html#204">source</a></span><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.64.0/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.64.0/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/borrow.rs.html#209">source</a></span><a href="#impl-Borrow%3CT%3E-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/borrow.rs.html#211">source</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&amp;</a>T</h4></section></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/borrow.rs.html#218">source</a></span><a href="#impl-BorrowMut%3CT%3E-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/1.64.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/borrow.rs.html#219">source</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&amp;mut </a>T</h4></section></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.64.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#557">source</a></span><a href="#impl-From%3CT%3E-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#559">source</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#541">source</a></span><a href="#impl-Into%3CU%3E-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#549">source</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/alloc/borrow.rs.html#83">source</a></span><a href="#impl-ToOwned-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,&nbsp;</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'><p>The resulting type after obtaining ownership.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/alloc/borrow.rs.html#88">source</a></span><a href="#method.to_owned" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fnname">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'><p>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/alloc/borrow.rs.html#92">source</a></span><a href="#method.clone_into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fnname">clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/1.64.0/std/primitive.reference.html">&amp;mut </a>T)</h4></section></summary><div class='docblock'><p>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/1.64.0/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#598">source</a></span><a href="#impl-TryFrom%3CU%3E-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#604">source</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-ConfigBuilder%3CSt%3E" class="impl has-srclink"><span class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#583">source</a></span><a href="#impl-TryInto%3CU%3E-for-ConfigBuilder%3CSt%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,&nbsp;</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'><p>The type returned in the event of a conversion error.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/1.64.0/src/core/convert/mod.rs.html#589">source</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.64.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.64.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="config" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.64.0 (a55dd71d5 2022-09-19)" ></div></body></html>