1
0
mirror of https://github.com/fafhrd91/actix-net synced 2025-01-31 07:02:08 +01:00
actix-net/actix_tls/connect/rustls_0_23/reexports/struct.ClientConfig.html
2024-10-01 00:01:00 +00:00

137 lines
51 KiB
HTML
Raw Permalink Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Common configuration for (typically) all connections made by a program."><title>ClientConfig in actix_tls::connect::rustls_0_23::reexports - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-46f98efaafac5295.ttf.woff2,FiraSans-Regular-018c141bf0843ffd.woff2,FiraSans-Medium-8f9a781e4970d388.woff2,SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2,SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2" crossorigin href="../../../../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../../../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../../../static.files/rustdoc-b778ab399e080a4b.css"><meta name="rustdoc-vars" data-root-path="../../../../" data-static-root-path="../../../../static.files/" data-current-crate="actix_tls" data-themes="" data-resource-suffix="" data-rustdoc-version="1.83.0-nightly (7608018cb 2024-09-29)" data-channel="nightly" data-search-js="search-e056c65ede92db13.js" data-settings-js="settings-805db61a62df4bd2.js" ><script src="../../../../static.files/storage-1d39b6787ed640ff.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../../static.files/main-54bc299d2a5e4e43.js"></script><noscript><link rel="stylesheet" href="../../../../static.files/noscript-0111fcff984fae8f.css"></noscript><link rel="icon" href="https://actix.rs/favicon.ico"></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" title="show sidebar"></button><a class="logo-container" href="../../../../actix_tls/index.html"><img src="https://actix.rs/img/logo.png" alt=""></a></nav><nav class="sidebar"><div class="sidebar-crate"><a class="logo-container" href="../../../../actix_tls/index.html"><img src="https://actix.rs/img/logo.png" alt="logo"></a><h2><a href="../../../../actix_tls/index.html">actix_<wbr>tls</a><span class="version">3.4.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Client<wbr>Config</a></h2><h3><a href="#">Sections</a></h3><ul class="block top-toc"><li><a href="#defaults" title="Defaults">Defaults</a></li></ul><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.alpn_protocols" title="alpn_protocols">alpn_protocols</a></li><li><a href="#structfield.cert_compression_cache" title="cert_compression_cache">cert_compression_cache</a></li><li><a href="#structfield.cert_compressors" title="cert_compressors">cert_compressors</a></li><li><a href="#structfield.cert_decompressors" title="cert_decompressors">cert_decompressors</a></li><li><a href="#structfield.client_auth_cert_resolver" title="client_auth_cert_resolver">client_auth_cert_resolver</a></li><li><a href="#structfield.enable_early_data" title="enable_early_data">enable_early_data</a></li><li><a href="#structfield.enable_secret_extraction" title="enable_secret_extraction">enable_secret_extraction</a></li><li><a href="#structfield.enable_sni" title="enable_sni">enable_sni</a></li><li><a href="#structfield.key_log" title="key_log">key_log</a></li><li><a href="#structfield.max_fragment_size" title="max_fragment_size">max_fragment_size</a></li><li><a href="#structfield.resumption" title="resumption">resumption</a></li><li><a href="#structfield.time_provider" title="time_provider">time_provider</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.builder" title="builder">builder</a></li><li><a href="#method.builder_with_details" title="builder_with_details">builder_with_details</a></li><li><a href="#method.builder_with_protocol_versions" title="builder_with_protocol_versions">builder_with_protocol_versions</a></li><li><a href="#method.builder_with_provider" title="builder_with_provider">builder_with_provider</a></li><li><a href="#method.crypto_provider" title="crypto_provider">crypto_provider</a></li><li><a href="#method.dangerous" title="dangerous">dangerous</a></li><li><a href="#method.fips" title="fips">fips</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-ClientConfig" title="Clone">Clone</a></li><li><a href="#impl-ConfigSide-for-ClientConfig" title="ConfigSide">ConfigSide</a></li><li><a href="#impl-Debug-for-ClientConfig" title="Debug">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-ClientConfig" title="!RefUnwindSafe">!RefUnwindSafe</a></li><li><a href="#impl-UnwindSafe-for-ClientConfig" title="!UnwindSafe">!UnwindSafe</a></li><li><a href="#impl-Freeze-for-ClientConfig" title="Freeze">Freeze</a></li><li><a href="#impl-Send-for-ClientConfig" title="Send">Send</a></li><li><a href="#impl-Sync-for-ClientConfig" title="Sync">Sync</a></li><li><a href="#impl-Unpin-for-ClientConfig" title="Unpin">Unpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-CloneToUninit-for-T" title="CloneToUninit">CloneToUninit</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Instrument-for-T" title="Instrument">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-ToOwned-for-T" title="ToOwned">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li><li><a href="#impl-WithSubscriber-for-T" title="WithSubscriber">WithSubscriber</a></li></ul></section><div id="rustdoc-modnav"><h2><a href="index.html">In actix_<wbr>tls::<wbr>connect::<wbr>rustls_<wbr>0_<wbr>23::<wbr>reexports</a></h2></div></div></nav><div class="sidebar-resizer"></div><main><div class="width-limiter"><rustdoc-search></rustdoc-search><section id="main-content" class="content"><div class="main-heading"><span class="rustdoc-breadcrumbs"><a href="../../../index.html">actix_tls</a>::<wbr><a href="../../index.html">connect</a>::<wbr><a href="../index.html">rustls_0_23</a>::<wbr><a href="index.html">reexports</a></span><h1>Struct <span class="struct">ClientConfig</span><button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"></span></div><pre class="rust item-decl"><code>pub struct ClientConfig {
pub alpn_protocols: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;&gt;,
pub resumption: Resumption,
pub max_fragment_size: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;,
pub client_auth_cert_resolver: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;dyn ResolvesClientCert&gt;,
pub enable_sni: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
pub key_log: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;dyn KeyLog&gt;,
pub enable_secret_extraction: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
pub enable_early_data: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,
pub time_provider: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;dyn TimeProvider&gt;,
pub cert_decompressors: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;&amp;'static dyn CertDecompressor&gt;,
pub cert_compressors: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;&amp;'static dyn CertCompressor&gt;,
pub cert_compression_cache: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;CompressionCache&gt;,
<span class="comment">/* private fields */</span>
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Common configuration for (typically) all connections made by a program.</p>
<p>Making one of these is cheap, though one of the inputs may be expensive: gathering trust roots
from the operating system to add to the <a href="crate::RootCertStore"><code>RootCertStore</code></a> passed to <code>with_root_certificates()</code>
(the rustls-native-certs crate is often used for this) may take on the order of a few hundred
milliseconds.</p>
<p>These must be created via the <a href="struct.ClientConfig.html#method.builder" title="associated function actix_tls::connect::rustls_0_23::reexports::ClientConfig::builder"><code>ClientConfig::builder()</code></a> or <a href="struct.ClientConfig.html#method.builder_with_provider" title="associated function actix_tls::connect::rustls_0_23::reexports::ClientConfig::builder_with_provider"><code>ClientConfig::builder_with_provider()</code></a>
function.</p>
<p>Note that using [<code>ConfigBuilder&lt;ClientConfig, WantsVersions&gt;::with_ech()</code>] will produce a common
configuration specific to the provided [<code>crate::client::EchConfig</code>] that may not be appropriate
for all connections made by the program. In this case the configuration should only be shared
by connections intended for domains that offer the provided [<code>crate::client::EchConfig</code>] in
their DNS zone.</p>
<h2 id="defaults"><a class="doc-anchor" href="#defaults">§</a>Defaults</h2>
<ul>
<li><a href="struct.ClientConfig.html#structfield.max_fragment_size" title="field actix_tls::connect::rustls_0_23::reexports::ClientConfig::max_fragment_size"><code>ClientConfig::max_fragment_size</code></a>: the default is <code>None</code> (meaning 16kB).</li>
<li><a href="struct.ClientConfig.html#structfield.resumption" title="field actix_tls::connect::rustls_0_23::reexports::ClientConfig::resumption"><code>ClientConfig::resumption</code></a>: supports resumption with up to 256 server names, using session
ids or tickets, with a max of eight tickets per server.</li>
<li><a href="struct.ClientConfig.html#structfield.alpn_protocols" title="field actix_tls::connect::rustls_0_23::reexports::ClientConfig::alpn_protocols"><code>ClientConfig::alpn_protocols</code></a>: the default is empty no ALPN protocol is negotiated.</li>
<li><a href="struct.ClientConfig.html#structfield.key_log" title="field actix_tls::connect::rustls_0_23::reexports::ClientConfig::key_log"><code>ClientConfig::key_log</code></a>: key material is not logged.</li>
<li><a href="struct.ClientConfig.html#structfield.cert_decompressors" title="field actix_tls::connect::rustls_0_23::reexports::ClientConfig::cert_decompressors"><code>ClientConfig::cert_decompressors</code></a>: depends on the crate features, see [<code>compress::default_cert_decompressors()</code>].</li>
<li><a href="struct.ClientConfig.html#structfield.cert_compressors" title="field actix_tls::connect::rustls_0_23::reexports::ClientConfig::cert_compressors"><code>ClientConfig::cert_compressors</code></a>: depends on the crate features, see [<code>compress::default_cert_compressors()</code>].</li>
<li><a href="struct.ClientConfig.html#structfield.cert_compression_cache" title="field actix_tls::connect::rustls_0_23::reexports::ClientConfig::cert_compression_cache"><code>ClientConfig::cert_compression_cache</code></a>: caches the most recently used 4 compressions</li>
</ul>
</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.alpn_protocols" class="structfield section-header"><a href="#structfield.alpn_protocols" class="anchor field">§</a><code>alpn_protocols: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;&gt;</code></span><div class="docblock"><p>Which ALPN protocols we include in our client hello.
If empty, no ALPN extension is sent.</p>
</div><span id="structfield.resumption" class="structfield section-header"><a href="#structfield.resumption" class="anchor field">§</a><code>resumption: Resumption</code></span><div class="docblock"><p>How and when the client can resume a previous session.</p>
</div><span id="structfield.max_fragment_size" class="structfield section-header"><a href="#structfield.max_fragment_size" class="anchor field">§</a><code>max_fragment_size: <a class="enum" href="https://doc.rust-lang.org/nightly/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;</code></span><div class="docblock"><p>The maximum size of plaintext input to be emitted in a single TLS record.
A value of None is equivalent to the <a href="https://datatracker.ietf.org/doc/html/rfc8446#section-5.1">TLS maximum</a> of 16 kB.</p>
<p>rustls enforces an arbitrary minimum of 32 bytes for this field.
Out of range values are reported as errors from <a href="crate::client::ClientConnection::new">ClientConnection::new</a>.</p>
<p>Setting this value to a little less than the TCP MSS may improve latency
for stream-y workloads.</p>
</div><span id="structfield.client_auth_cert_resolver" class="structfield section-header"><a href="#structfield.client_auth_cert_resolver" class="anchor field">§</a><code>client_auth_cert_resolver: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;dyn ResolvesClientCert&gt;</code></span><div class="docblock"><p>How to decide what client auth certificate/keys to use.</p>
</div><span id="structfield.enable_sni" class="structfield section-header"><a href="#structfield.enable_sni" class="anchor field">§</a><code>enable_sni: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether to send the Server Name Indication (SNI) extension
during the client handshake.</p>
<p>The default is true.</p>
</div><span id="structfield.key_log" class="structfield section-header"><a href="#structfield.key_log" class="anchor field">§</a><code>key_log: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;dyn KeyLog&gt;</code></span><div class="docblock"><p>How to output key material for debugging. The default
does nothing.</p>
</div><span id="structfield.enable_secret_extraction" class="structfield section-header"><a href="#structfield.enable_secret_extraction" class="anchor field">§</a><code>enable_secret_extraction: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Allows traffic secrets to be extracted after the handshake,
e.g. for kTLS setup.</p>
</div><span id="structfield.enable_early_data" class="structfield section-header"><a href="#structfield.enable_early_data" class="anchor field">§</a><code>enable_early_data: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span><div class="docblock"><p>Whether to send data on the first flight (“early data”) in
TLS 1.3 handshakes.</p>
<p>The default is false.</p>
</div><span id="structfield.time_provider" class="structfield section-header"><a href="#structfield.time_provider" class="anchor field">§</a><code>time_provider: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;dyn TimeProvider&gt;</code></span><div class="docblock"><p>Provides the current system time</p>
</div><span id="structfield.cert_decompressors" class="structfield section-header"><a href="#structfield.cert_decompressors" class="anchor field">§</a><code>cert_decompressors: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;&amp;'static dyn CertDecompressor&gt;</code></span><div class="docblock"><p>How to decompress the servers certificate chain.</p>
<p>If this is non-empty, the <a href="https://datatracker.ietf.org/doc/rfc8879/">RFC8779</a> certificate compression
extension is offered, and any compressed certificates are
transparently decompressed during the handshake.</p>
<p>This only applies to TLS1.3 connections. It is ignored for
TLS1.2 connections.</p>
</div><span id="structfield.cert_compressors" class="structfield section-header"><a href="#structfield.cert_compressors" class="anchor field">§</a><code>cert_compressors: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;&amp;'static dyn CertCompressor&gt;</code></span><div class="docblock"><p>How to compress the clients certificate chain.</p>
<p>If a server supports this extension, and advertises support
for one of the compression algorithms included here, the
client certificate will be compressed according to <a href="https://datatracker.ietf.org/doc/rfc8879/">RFC8779</a>.</p>
<p>This only applies to TLS1.3 connections. It is ignored for
TLS1.2 connections.</p>
</div><span id="structfield.cert_compression_cache" class="structfield section-header"><a href="#structfield.cert_compression_cache" class="anchor field">§</a><code>cert_compression_cache: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;CompressionCache&gt;</code></span><div class="docblock"><p>Caching for compressed certificates.</p>
<p>This is optional: [<code>compress::CompressionCache::Disabled</code>] gives
a cache that does no caching.</p>
</div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-ClientConfig" class="impl"><a href="#impl-ClientConfig" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.builder" class="method"><h4 class="code-header">pub fn <a href="#method.builder" class="fn">builder</a>() -&gt; ConfigBuilder&lt;<a class="struct" href="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a>, WantsVerifier&gt;</h4></section></summary><div class="docblock"><p>Create a builder for a client configuration with
[the process-default <code>CryptoProvider</code>][CryptoProvider#using-the-per-process-default-cryptoprovider]
and safe protocol version defaults.</p>
<p>For more information, see the [<code>ConfigBuilder</code>] documentation.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.builder_with_protocol_versions" class="method"><h4 class="code-header">pub fn <a href="#method.builder_with_protocol_versions" class="fn">builder_with_protocol_versions</a>(
versions: &amp;[&amp;'static SupportedProtocolVersion],
) -&gt; ConfigBuilder&lt;<a class="struct" href="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a>, WantsVerifier&gt;</h4></section></summary><div class="docblock"><p>Create a builder for a client configuration with
[the process-default <code>CryptoProvider</code>][CryptoProvider#using-the-per-process-default-cryptoprovider]
and the provided protocol versions.</p>
<p>Panics if</p>
<ul>
<li>the supported versions are not compatible with the provider (eg.
the combination of ciphersuites supported by the provider and supported
versions lead to zero cipher suites being usable),</li>
<li>if a <code>CryptoProvider</code> cannot be resolved using a combination of
the crate features and process default.</li>
</ul>
<p>For more information, see the [<code>ConfigBuilder</code>] documentation.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.builder_with_provider" class="method"><h4 class="code-header">pub fn <a href="#method.builder_with_provider" class="fn">builder_with_provider</a>(
provider: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;CryptoProvider&gt;,
) -&gt; ConfigBuilder&lt;<a class="struct" href="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a>, WantsVersions&gt;</h4></section></summary><div class="docblock"><p>Create a builder for a client configuration with a specific [<code>CryptoProvider</code>].</p>
<p>This will use the providers configured ciphersuites. You must additionally choose
which protocol versions to enable, using <code>with_protocol_versions</code> or
<code>with_safe_default_protocol_versions</code> and handling the <code>Result</code> in case a protocol
version is not supported by the providers ciphersuites.</p>
<p>For more information, see the [<code>ConfigBuilder</code>] documentation.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.builder_with_details" class="method"><h4 class="code-header">pub fn <a href="#method.builder_with_details" class="fn">builder_with_details</a>(
provider: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;CryptoProvider&gt;,
time_provider: <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;dyn TimeProvider&gt;,
) -&gt; ConfigBuilder&lt;<a class="struct" href="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a>, WantsVersions&gt;</h4></section></summary><div class="docblock"><p>Create a builder for a client configuration with no default implementation details.</p>
<p>This API must be used by <code>no_std</code> users.</p>
<p>You must provide a specific [<code>TimeProvider</code>].</p>
<p>You must provide a specific [<code>CryptoProvider</code>].</p>
<p>This will use the providers configured ciphersuites. You must additionally choose
which protocol versions to enable, using <code>with_protocol_versions</code> or
<code>with_safe_default_protocol_versions</code> and handling the <code>Result</code> in case a protocol
version is not supported by the providers ciphersuites.</p>
<p>For more information, see the [<code>ConfigBuilder</code>] documentation.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.fips" class="method"><h4 class="code-header">pub fn <a href="#method.fips" class="fn">fips</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Return true if connections made with this <code>ClientConfig</code> will
operate in FIPS mode.</p>
<p>This is different from [<code>CryptoProvider::fips()</code>]: [<code>CryptoProvider::fips()</code>]
is concerned only with cryptography, whereas this <em>also</em> covers TLS-level
configuration that NIST recommends, as well as ECH HPKE suites if applicable.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.crypto_provider" class="method"><h4 class="code-header">pub fn <a href="#method.crypto_provider" class="fn">crypto_provider</a>(&amp;self) -&gt; &amp;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/sync/struct.Arc.html" title="struct alloc::sync::Arc">Arc</a>&lt;CryptoProvider&gt;</h4></section></summary><div class="docblock"><p>Return the crypto provider used to construct this client configuration.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.dangerous" class="method"><h4 class="code-header">pub fn <a href="#method.dangerous" class="fn">dangerous</a>(&amp;mut self) -&gt; DangerousClientConfig&lt;'_&gt;</h4></section></summary><div class="docblock"><p>Access configuration options whose use is dangerous and requires
extra care.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-ClientConfig" class="impl"><a href="#impl-Clone-for-ClientConfig" class="anchor">§</a><h3 class="code-header">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="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.6.0">1.6.0</span> · <a class="src" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#174">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: &amp;Self)</h4></section></summary><div class='docblock'>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></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-ClientConfig" class="impl"><a href="#impl-Debug-for-ClientConfig" class="anchor">§</a><h3 class="code-header">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="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Error.html" title="struct core::fmt::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>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></div></details></div></details><section id="impl-ConfigSide-for-ClientConfig" class="impl"><a href="#impl-ConfigSide-for-ClientConfig" class="anchor">§</a><h3 class="code-header">impl ConfigSide for <a class="struct" href="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h3></section></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-ClientConfig" class="impl"><a href="#impl-Freeze-for-ClientConfig" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h3></section><section id="impl-RefUnwindSafe-for-ClientConfig" class="impl"><a href="#impl-RefUnwindSafe-for-ClientConfig" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h3></section><section id="impl-Send-for-ClientConfig" class="impl"><a href="#impl-Send-for-ClientConfig" class="anchor">§</a><h3 class="code-header">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="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h3></section><section id="impl-Sync-for-ClientConfig" class="impl"><a href="#impl-Sync-for-ClientConfig" class="anchor">§</a><h3 class="code-header">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="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h3></section><section id="impl-Unpin-for-ClientConfig" class="impl"><a href="#impl-Unpin-for-ClientConfig" class="anchor">§</a><h3 class="code-header">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="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h3></section><section id="impl-UnwindSafe-for-ClientConfig" class="impl"><a href="#impl-UnwindSafe-for-ClientConfig" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.ClientConfig.html" title="struct actix_tls::connect::rustls_0_23::reexports::ClientConfig">ClientConfig</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#138">source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<div class="where">where
T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#139">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></section></summary><div class='docblock'>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></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#209">source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#217">source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#218">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>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></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-CloneToUninit-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#273">source</a><a href="#impl-CloneToUninit-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html" title="trait core::clone::CloneToUninit">CloneToUninit</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone_to_uninit" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#275">source</a><a href="#method.clone_to_uninit" class="anchor">§</a><h4 class="code-header">unsafe fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit" class="fn">clone_to_uninit</a>(&amp;self, dst: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.pointer.html">*mut T</a>)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>clone_to_uninit</code>)</span></div></span><div class='docblock'>Performs copy-assignment from <code>self</code> to <code>dst</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.CloneToUninit.html#tymethod.clone_to_uninit">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#765">source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/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="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#768">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-T" class="impl"><a href="#impl-Instrument-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Instrument for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl"><a href="#method.instrument" class="anchor">§</a><h4 class="code-header">fn <a class="fn">instrument</a>(self, span: Span) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the provided [<code>Span</code>], returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl"><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a class="fn">in_current_span</a>(self) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the <a href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#748-750">source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#758">source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fn">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/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToOwned-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#82-84">source</a><a href="#impl-ToOwned-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#86">source</a><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#87">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>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></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#91">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut T</a>)</h4></section></summary><div class='docblock'>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></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#805-807">source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#809">source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#812">source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#790-792">source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#794">source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><div class='docblock'>The type returned in the event of a conversion error.</div></details><details class="toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#797">source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WithSubscriber-for-T" class="impl"><a href="#impl-WithSubscriber-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; WithSubscriber for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.with_subscriber" class="method trait-impl"><a href="#method.with_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_subscriber</a>&lt;S&gt;(self, subscriber: S) -&gt; WithDispatch&lt;Self&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;Dispatch&gt;,</div></h4></section></summary><div class='docblock'>Attaches the provided <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl"><a href="#method.with_current_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -&gt; WithDispatch&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the current <a href="crate::dispatcher#setting-the-default-subscriber">default</a> <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details></div></details></div></section></div></main></body></html>