This repository has been archived on 2022-04-04. You can view files and clone it, but cannot push or open issues or pull requests.
ludum-dare-50/rustdoc/fern/struct.Dispatch.html

237 lines
48 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="The base dispatch logger."><meta name="keywords" content="rust, rustlang, rust-lang, Dispatch"><title>Dispatch in fern - 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 src="../crates.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="sidebar"><div class="sidebar-menu" role="button">&#9776;</div><a class="sidebar-logo" href="../fern/index.html"><div class="logo-container"><img class="rust-logo" src="../rust-logo.png" alt="logo"></div>
</a><h2 class="location">Struct Dispatch</h2><div class="sidebar-elems"><div class="block items"><h3 class="sidebar-title"><a href="#implementations">Methods</a></h3><div class="sidebar-links"><a href="#method.apply">apply</a><a href="#method.chain">chain</a><a href="#method.filter">filter</a><a href="#method.format">format</a><a href="#method.into_log">into_log</a><a href="#method.into_shared">into_shared</a><a href="#method.level">level</a><a href="#method.level_for">level_for</a><a href="#method.new">new</a></div><h3 class="sidebar-title"><a href="#trait-implementations">Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-Debug">Debug</a><a href="#impl-Default">Default</a><a href="#impl-From%3CDispatch%3E">From&lt;Dispatch&gt;</a></div><h3 class="sidebar-title"><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><div class="sidebar-links"><a href="#impl-RefUnwindSafe">!RefUnwindSafe</a><a href="#impl-Send">Send</a><a href="#impl-Sync">!Sync</a><a href="#impl-Unpin">Unpin</a><a href="#impl-UnwindSafe">!UnwindSafe</a></div><h3 class="sidebar-title"><a href="#blanket-implementations">Blanket Implementations</a></h3><div class="sidebar-links"><a href="#impl-Any">Any</a><a href="#impl-Borrow%3CT%3E">Borrow&lt;T&gt;</a><a href="#impl-BorrowMut%3CT%3E">BorrowMut&lt;T&gt;</a><a href="#impl-From%3CT%3E">From&lt;T&gt;</a><a href="#impl-Into%3CU%3E">Into&lt;U&gt;</a><a href="#impl-TryFrom%3CU%3E">TryFrom&lt;U&gt;</a><a href="#impl-TryInto%3CU%3E">TryInto&lt;U&gt;</a></div></div><h2 class="location">Other items in<br><a href="index.html">fern</a></h2><div id="sidebar-vars" data-name="Dispatch" data-ty="struct" data-relpath=""></div><script defer src="sidebar-items.js"></script></div></nav><main><div class="width-limiter"><div class="sub-container"><a class="sub-logo-container" href="../fern/index.html"><img class="rust-logo" src="../rust-logo.png" alt="logo"></a><nav class="sub"><div class="theme-picker"><button id="theme-picker" aria-label="Pick another theme!" aria-haspopup="menu" title="themes"><img width="18" height="18" alt="Pick another theme!" src="../brush.svg"></button><div id="theme-choices" role="menu"></div></div><form class="search-form"><div class="search-container"><div><select id="crate-search"><option value="All crates">All crates</option></select><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"></div><button type="button" id="help-button" title="help">?</button><a id="settings-menu" href="../settings.html" title="settings"><img width="18" height="18" alt="Change settings" src="../wheel.svg"></a></div></form></nav></div><section id="main-content" class="content"><h1 class="fqn"><span class="in-band">Struct <a href="index.html">fern</a>::<wbr><a class="struct" href="#">Dispatch</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><span class="out-of-band"><span id="render-detail"><a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span><a class="srclink" href="../src/fern/builders.rs.html#98-104" title="goto source code">[src]</a></span></h1><div class="docblock item-decl"><pre class="rust struct"><code>pub struct Dispatch { /* fields omitted */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>The base dispatch logger.</p>
<p>This allows for formatting log records, limiting what records can be passed
through, and then dispatching records to other dispatch loggers or output
loggers.</p>
<p>Note that all methods are position-insensitive.
<code>Dispatch::new().format(a).chain(b)</code> produces the exact same result
as <code>Dispatch::new().chain(b).format(a)</code>. Given this, it is preferred to put
format and other modifiers before chain for the sake of clarity.</p>
<p>Example usage demonstrating all features:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use</span> <span class="ident">std</span>::{<span class="ident">fs</span>, <span class="ident">io</span>};
<span class="ident">fern::Dispatch::new</span>()
.<span class="ident">format</span>(<span class="op">|</span><span class="ident">out</span>, <span class="ident">message</span>, <span class="ident">record</span><span class="op">|</span> {
<span class="ident">out</span>.<span class="ident">finish</span>(<span class="macro">format_args!</span>(
<span class="string">&quot;[{}][{}] {}&quot;</span>,
<span class="ident">record</span>.<span class="ident">level</span>(),
<span class="ident">record</span>.<span class="ident">target</span>(),
<span class="ident">message</span>,
))
})
.<span class="ident">chain</span>(
<span class="ident">fern::Dispatch::new</span>()
<span class="comment">// by default only accept warn messages</span>
.<span class="ident">level</span>(<span class="ident">log::LevelFilter::Warn</span>)
<span class="comment">// accept info messages from the current crate too</span>
.<span class="ident">level_for</span>(<span class="string">&quot;my_crate&quot;</span>, <span class="ident">log::LevelFilter::Info</span>)
<span class="comment">// `io::Stdout`, `io::Stderr` and `io::File` can be directly passed in.</span>
.<span class="ident">chain</span>(<span class="ident">io::stdout</span>()),
)
.<span class="ident">chain</span>(
<span class="ident">fern::Dispatch::new</span>()
<span class="comment">// output all messages</span>
.<span class="ident">level</span>(<span class="ident">log::LevelFilter::Trace</span>)
<span class="comment">// except for hyper, in that case only show info messages</span>
.<span class="ident">level_for</span>(<span class="string">&quot;hyper&quot;</span>, <span class="ident">log::LevelFilter::Info</span>)
<span class="comment">// `log_file(x)` equates to</span>
<span class="comment">// `OpenOptions::new().write(true).append(true).create(true).open(x)`</span>
.<span class="ident">chain</span>(<span class="ident">fern::log_file</span>(<span class="string">&quot;persistent-log.log&quot;</span>)<span class="question-mark">?</span>)
.<span class="ident">chain</span>(
<span class="ident">fs::OpenOptions::new</span>()
.<span class="ident">write</span>(<span class="bool-val">true</span>)
.<span class="ident">create</span>(<span class="bool-val">true</span>)
.<span class="ident">truncate</span>(<span class="bool-val">true</span>)
.<span class="ident">create</span>(<span class="bool-val">true</span>)
.<span class="ident">open</span>(<span class="string">&quot;/tmp/temp.log&quot;</span>)<span class="question-mark">?</span>,
),
)
.<span class="ident">chain</span>(
<span class="ident">fern::Dispatch::new</span>()
.<span class="ident">level</span>(<span class="ident">log::LevelFilter::Error</span>)
.<span class="ident">filter</span>(<span class="op">|</span><span class="ident">_meta_data</span><span class="op">|</span> {
<span class="comment">// as an example, randomly reject half of the messages</span>
<span class="ident">rand::random</span>()
})
.<span class="ident">chain</span>(<span class="ident">io::stderr</span>()),
)
<span class="comment">// and finally, set as the global logger!</span>
.<span class="ident">apply</span>()<span class="question-mark">?</span>;</code></pre></div>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#121-612" title="goto source code">[src]</a></div><a href="#impl" class="anchor"></a><h3 class="code-header in-band">impl <a class="struct" href="struct.Dispatch.html" title="struct fern::Dispatch">Dispatch</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.new" class="method has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#124-132" title="goto source code">[src]</a></div><a href="#method.new" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.new" class="fnname">new</a>() -&gt; Self</h4></div></summary><div class="docblock"><p>Creates a dispatch, which will initially do nothing.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.format" class="method has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#168-174" title="goto source code">[src]</a></div><a href="#method.format" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.format" class="fnname">format</a>&lt;F&gt;(self, formatter: F) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(<a class="struct" href="struct.FormatCallback.html" title="struct fern::FormatCallback">FormatCallback</a>&lt;'_&gt;, &amp;<a class="struct" href="https://doc.rust-lang.org/1.59.0/core/fmt/struct.Arguments.html" title="struct core::fmt::Arguments">Arguments</a>&lt;'_&gt;, &amp;<a class="struct" href="../log/struct.Record.html" title="struct log::Record">Record</a>&lt;'_&gt;) + <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + 'static,&nbsp;</span></h4></div></summary><div class="docblock"><p>Sets the formatter of this dispatch. The closure should accept a
callback, a message and a log record, and write the resulting
format to the writer.</p>
<p>The log record is passed for completeness, but the <code>args()</code> method of
the record should be ignored, and the <a href="https://doc.rust-lang.org/std/fmt/struct.Arguments.html"><code>fmt::Arguments</code></a> given
should be used instead. <code>record.args()</code> may be used to retrieve the
<em>original</em> log message, but in order to allow for true log
chaining, formatters should use the given message instead whenever
including the message in the output.</p>
<p>To avoid all allocation of intermediate results, the formatter is
“completed” by calling a callback, which then calls the rest of the
logging chain with the new formatted message. The callback object keeps
track of if it was called or not via a stack boolean as well, so if
you dont use <code>out.finish</code> the log message will continue down
the logger chain unformatted.</p>
<p>Example usage:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">fern::Dispatch::new</span>().<span class="ident">format</span>(<span class="op">|</span><span class="ident">out</span>, <span class="ident">message</span>, <span class="ident">record</span><span class="op">|</span> {
<span class="ident">out</span>.<span class="ident">finish</span>(<span class="macro">format_args!</span>(
<span class="string">&quot;[{}][{}] {}&quot;</span>,
<span class="ident">record</span>.<span class="ident">level</span>(),
<span class="ident">record</span>.<span class="ident">target</span>(),
<span class="ident">message</span>
))
})</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.chain" class="method has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#195-198" title="goto source code">[src]</a></div><a href="#method.chain" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.chain" class="fnname">chain</a>&lt;T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.59.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="struct" href="struct.Output.html" title="struct fern::Output">Output</a>&gt;&gt;(self, logger: T) -&gt; Self</h4></div></summary><div class="docblock"><p>Adds a child to this dispatch.</p>
<p>All log records which pass all filters will be formatted and then sent
to all child loggers in sequence.</p>
<p>Note: If the child logger is also a Dispatch, and cannot accept any log
records, it will be dropped. This only happens if the child either
has no children itself, or has a minimum log level of
<a href="https://docs.rs/log/0.4/log/enum.LevelFilter.html#variant.Off"><code>LevelFilter::Off</code></a>.</p>
<p>Example usage:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">fern::Dispatch::new</span>().<span class="ident">chain</span>(<span class="ident">fern::Dispatch::new</span>().<span class="ident">chain</span>(<span class="ident">std::io::stdout</span>()))</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.level" class="method has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#221-224" title="goto source code">[src]</a></div><a href="#method.level" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.level" class="fnname">level</a>(self, level: <a class="enum" href="../log/enum.LevelFilter.html" title="enum log::LevelFilter">LevelFilter</a>) -&gt; Self</h4></div></summary><div class="docblock"><p>Sets the overarching level filter for this logger. All messages not
already filtered by something set by <a href="#method.level_for"><code>Dispatch::level_for</code></a> will
be affected.</p>
<p>All messages filtered will be discarded if less severe than the given
level.</p>
<p>Default level is <a href="https://docs.rs/log/0.4/log/enum.LevelFilter.html#variant.Trace"><code>LevelFilter::Trace</code></a>.</p>
<p>Example usage:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">fern::Dispatch::new</span>().<span class="ident">level</span>(<span class="ident">log::LevelFilter::Info</span>)</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.level_for" class="method has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#283-301" title="goto source code">[src]</a></div><a href="#method.level_for" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.level_for" class="fnname">level_for</a>&lt;T:&nbsp;<a class="trait" href="https://doc.rust-lang.org/1.59.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.59.0/alloc/borrow/enum.Cow.html" title="enum alloc::borrow::Cow">Cow</a>&lt;'static, <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.str.html">str</a>&gt;&gt;&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;self, <br>&nbsp;&nbsp;&nbsp;&nbsp;module: T, <br>&nbsp;&nbsp;&nbsp;&nbsp;level: <a class="enum" href="../log/enum.LevelFilter.html" title="enum log::LevelFilter">LevelFilter</a><br>) -&gt; Self</h4></div></summary><div class="docblock"><p>Sets a per-target log level filter. Default target for log messages is
<code>crate_name::module_name</code> or
<code>crate_name</code> for logs in the crate root. Targets can also be set with
<code>info!(target: &quot;target-name&quot;, ...)</code>.</p>
<p>For each log record fern will first try to match the most specific
level_for, and then progressively more general ones until either a
matching level is found, or the default level is used.</p>
<p>For example, a log for the target <code>hyper::http::h1</code> will first test a
level_for for <code>hyper::http::h1</code>, then for <code>hyper::http</code>, then for
<code>hyper</code>, then use the default level.</p>
<p>Examples:</p>
<p>A program wants to include a lot of debugging output, but the library
“hyper” is known to work well, so debug output from it should be
excluded:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">fern::Dispatch::new</span>()
.<span class="ident">level</span>(<span class="ident">log::LevelFilter::Trace</span>)
.<span class="ident">level_for</span>(<span class="string">&quot;hyper&quot;</span>, <span class="ident">log::LevelFilter::Info</span>)</code></pre></div>
<p>A program has a ton of debug output per-module, but there is so much
that debugging more than one module at a time is not very useful.
The command line accepts a list of modules to debug, while keeping the
rest of the program at info level:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">fn</span> <span class="ident">setup_logging</span><span class="op">&lt;</span><span class="ident">T</span>, <span class="ident">I</span><span class="op">&gt;</span>(<span class="ident">verbose_modules</span>: <span class="ident">T</span>) -&gt; <span class="prelude-ty">Result</span><span class="op">&lt;</span>(), <span class="ident">fern::InitError</span><span class="op">&gt;</span>
<span class="kw">where</span>
<span class="ident">I</span>: <span class="ident">AsRef</span><span class="op">&lt;</span><span class="ident">str</span><span class="op">&gt;</span>,
<span class="ident">T</span>: <span class="ident">IntoIterator</span><span class="op">&lt;</span><span class="ident">Item</span> <span class="op">=</span> <span class="ident">I</span><span class="op">&gt;</span>,
{
<span class="kw">let</span> <span class="kw-2">mut</span> <span class="ident">config</span> <span class="op">=</span> <span class="ident">fern::Dispatch::new</span>().<span class="ident">level</span>(<span class="ident">log::LevelFilter::Info</span>);
<span class="kw">for</span> <span class="ident">module_name</span> <span class="kw">in</span> <span class="ident">verbose_modules</span> {
<span class="ident">config</span> <span class="op">=</span> <span class="ident">config</span>.<span class="ident">level_for</span>(
<span class="macro">format!</span>(<span class="string">&quot;my_crate_name::{}&quot;</span>, <span class="ident">module_name</span>.<span class="ident">as_ref</span>()),
<span class="ident">log::LevelFilter::Debug</span>,
);
}
<span class="ident">config</span>.<span class="ident">chain</span>(<span class="ident">std::io::stdout</span>()).<span class="ident">apply</span>()<span class="question-mark">?</span>;
<span class="prelude-val">Ok</span>(())
}</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.filter" class="method has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#339-345" title="goto source code">[src]</a></div><a href="#method.filter" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.filter" class="fnname">filter</a>&lt;F&gt;(self, filter: F) -&gt; Self <span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/ops/function/trait.Fn.html" title="trait core::ops::function::Fn">Fn</a>(&amp;<a class="struct" href="../log/struct.Metadata.html" title="struct log::Metadata">Metadata</a>&lt;'_&gt;) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.bool.html">bool</a> + <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> + <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> + 'static,&nbsp;</span></h4></div></summary><div class="docblock"><p>Adds a custom filter which can reject messages passing through this
logger.</p>
<p>The logger will continue to process log records only if all filters
return <code>true</code>.</p>
<p><a href="#method.level"><code>Dispatch::level</code></a> and <a href="#method.level_for"><code>Dispatch::level_for</code></a> are preferred if
applicable.</p>
<p>Example usage:</p>
<p>This sends error level messages to stderr and others to stdout.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="ident">fern::Dispatch::new</span>()
.<span class="ident">level</span>(<span class="ident">log::LevelFilter::Info</span>)
.<span class="ident">chain</span>(
<span class="ident">fern::Dispatch::new</span>()
.<span class="ident">filter</span>(<span class="op">|</span><span class="ident">metadata</span><span class="op">|</span> {
<span class="comment">// Reject messages with the `Error` log level.</span>
<span class="ident">metadata</span>.<span class="ident">level</span>() <span class="op">!</span><span class="op">=</span> <span class="ident">log::LevelFilter::Error</span>
})
.<span class="ident">chain</span>(<span class="ident">std::io::stderr</span>()),
)
.<span class="ident">chain</span>(
<span class="ident">fern::Dispatch::new</span>()
.<span class="ident">level</span>(<span class="ident">log::LevelFilter::Error</span>)
.<span class="ident">chain</span>(<span class="ident">std::io::stdout</span>()),
)</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.into_shared" class="method has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#391-398" title="goto source code">[src]</a></div><a href="#method.into_shared" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.into_shared" class="fnname">into_shared</a>(self) -&gt; SharedDispatch</h4></div></summary><div class="docblock"><p>Builds this dispatch and stores it in a clonable structure containing
an <a href="https://doc.rust-lang.org/std/sync/struct.Arc.html"><code>Arc</code></a>.</p>
<p>Once “shared”, the dispatch can be used as an output for multiple other
dispatch loggers.</p>
<p>Example usage:</p>
<p>This separates info and warn messages, sending info to stdout + a log
file, and warn to stderr + the same log file. Shared is used so the
program only opens “file.log” once.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>
<span class="kw">let</span> <span class="ident">file_out</span> <span class="op">=</span> <span class="ident">fern::Dispatch::new</span>()
.<span class="ident">chain</span>(<span class="ident">fern::log_file</span>(<span class="string">&quot;file.log&quot;</span>)<span class="question-mark">?</span>)
.<span class="ident">into_shared</span>();
<span class="kw">let</span> <span class="ident">info_out</span> <span class="op">=</span> <span class="ident">fern::Dispatch::new</span>()
.<span class="ident">level</span>(<span class="ident">log::LevelFilter::Debug</span>)
.<span class="ident">filter</span>(<span class="op">|</span><span class="ident">metadata</span><span class="op">|</span>
<span class="comment">// keep only info and debug (reject warn and error)</span>
<span class="ident">metadata</span>.<span class="ident">level</span>() <span class="op">&lt;</span><span class="op">=</span> <span class="ident">log::Level::Info</span>)
.<span class="ident">chain</span>(<span class="ident">std::io::stdout</span>())
.<span class="ident">chain</span>(<span class="ident">file_out</span>.<span class="ident">clone</span>());
<span class="kw">let</span> <span class="ident">warn_out</span> <span class="op">=</span> <span class="ident">fern::Dispatch::new</span>()
.<span class="ident">level</span>(<span class="ident">log::LevelFilter::Warn</span>)
.<span class="ident">chain</span>(<span class="ident">std::io::stderr</span>())
.<span class="ident">chain</span>(<span class="ident">file_out</span>);
<span class="ident">fern::Dispatch::new</span>()
.<span class="ident">chain</span>(<span class="ident">info_out</span>)
.<span class="ident">chain</span>(<span class="ident">warn_out</span>)
.<span class="ident">apply</span>();
</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.into_log" class="method has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#587-594" title="goto source code">[src]</a></div><a href="#method.into_log" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.into_log" class="fnname">into_log</a>(self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.tuple.html">(</a><a class="enum" href="../log/enum.LevelFilter.html" title="enum log::LevelFilter">LevelFilter</a>, <a class="struct" href="https://doc.rust-lang.org/1.59.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="../log/trait.Log.html" title="trait log::Log">Log</a>&gt;<a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.tuple.html">)</a></h4></div></summary><div class="docblock"><p>Builds this logger into a <code>Box&lt;log::Log&gt;</code> and calculates the minimum
log level needed to have any effect.</p>
<p>While this method is exposed publicly, <a href="#method.apply"><code>Dispatch::apply</code></a> is typically
used instead.</p>
<p>The returned LevelFilter is a calculation for all level filters of this
logger and child loggers, and is the minimum log level needed to
for a record to have any chance of passing through this logger.</p>
<p>Example usage:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let</span> (<span class="ident">min_level</span>, <span class="ident">log</span>) <span class="op">=</span> <span class="ident">fern::Dispatch::new</span>()
.<span class="ident">level</span>(<span class="ident">log::LevelFilter::Info</span>)
.<span class="ident">chain</span>(<span class="ident">std::io::stdout</span>())
.<span class="ident">into_log</span>();
<span class="macro">assert_eq!</span>(<span class="ident">min_level</span>, <span class="ident">log::LevelFilter::Info</span>);</code></pre></div>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><div id="method.apply" class="method has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#604-611" title="goto source code">[src]</a></div><a href="#method.apply" class="anchor"></a><h4 class="code-header">pub fn <a href="#method.apply" class="fnname">apply</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.59.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.59.0/std/primitive.unit.html">()</a>, <a class="struct" href="../log/struct.SetLoggerError.html" title="struct log::SetLoggerError">SetLoggerError</a>&gt;</h4></div></summary><div class="docblock"><p>Builds this logger and instantiates it as the global <a href="https://github.com/rust-lang-nursery/log"><code>log</code></a> logger.</p>
<h5 id="errors" class="section-header"><a href="#errors">Errors:</a></h5>
<p>This function will return an error if a global logger has already been
set to a previous logger.</p>
</div></details></div></details><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><div id="impl-Debug" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#1161-1190" title="goto source code">[src]</a></div><a href="#impl-Debug" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Dispatch.html" title="struct fern::Dispatch">Dispatch</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.fmt" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#1162-1189" title="goto source code">[src]</a></div><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.59.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.59.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.59.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></div></summary><div class='docblock'><p>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.59.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Default" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#1150-1159" title="goto source code">[src]</a></div><a href="#impl-Default" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/default/trait.Default.html" title="trait core::default::Default">Default</a> for <a class="struct" href="struct.Dispatch.html" title="struct fern::Dispatch">Dispatch</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.default" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#1156-1158" title="goto source code">[src]</a></div><a href="#method.default" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.59.0/core/default/trait.Default.html#tymethod.default" class="fnname">default</a>() -&gt; Self</h4></div></summary><div class="docblock"><p>Returns a logger configuration that does nothing with log records.</p>
<p>Equivalent to <a href="#method.new"><code>Dispatch::new</code></a>.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3CDispatch%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#725-730" title="goto source code">[src]</a></div><a href="#impl-From%3CDispatch%3E" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.Dispatch.html" title="struct fern::Dispatch">Dispatch</a>&gt; for <a class="struct" href="struct.Output.html" title="struct fern::Output">Output</a></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="../src/fern/builders.rs.html#727-729" title="goto source code">[src]</a></div><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.59.0/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(log: <a class="struct" href="struct.Dispatch.html" title="struct fern::Dispatch">Dispatch</a>) -&gt; Self</h4></div></summary><div class="docblock"><p>Creates an output logger forwarding all messages to the dispatch.</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"><div id="impl-RefUnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-RefUnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl !<a class="trait" href="https://doc.rust-lang.org/1.59.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Dispatch.html" title="struct fern::Dispatch">Dispatch</a></h3></div><div id="impl-Send" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Send" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Dispatch.html" title="struct fern::Dispatch">Dispatch</a></h3></div><div id="impl-Sync" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Sync" class="anchor"></a><h3 class="code-header in-band">impl !<a class="trait" href="https://doc.rust-lang.org/1.59.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Dispatch.html" title="struct fern::Dispatch">Dispatch</a></h3></div><div id="impl-Unpin" class="impl has-srclink"><div class="rightside"></div><a href="#impl-Unpin" class="anchor"></a><h3 class="code-header in-band">impl <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Dispatch.html" title="struct fern::Dispatch">Dispatch</a></h3></div><div id="impl-UnwindSafe" class="impl has-srclink"><div class="rightside"></div><a href="#impl-UnwindSafe" class="anchor"></a><h3 class="code-header in-band">impl !<a class="trait" href="https://doc.rust-lang.org/1.59.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Dispatch.html" title="struct fern::Dispatch">Dispatch</a></h3></div></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Any" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/any.rs.html#132-136" title="goto source code">[src]</a></div><a href="#impl-Any" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.59.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.59.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.type_id" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/any.rs.html#133" title="goto source code">[src]</a></div><a href="#method.type_id" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/1.59.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.59.0/core/any/struct.TypeId.html" title="struct core::any::TypeId">TypeId</a></h4></div></summary><div class='docblock'><p>Gets the <code>TypeId</code> of <code>self</code>. <a href="https://doc.rust-lang.org/1.59.0/core/any/trait.Any.html#tymethod.type_id">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Borrow%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/borrow.rs.html#209-214" title="goto source code">[src]</a></div><a href="#impl-Borrow%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.59.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.59.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/borrow.rs.html#211" title="goto source code">[src]</a></div><a href="#method.borrow" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/1.59.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.59.0/std/primitive.reference.html">&amp;</a>T</h4></div></summary><div class='docblock'><p>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.59.0/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-BorrowMut%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/borrow.rs.html#218-222" title="goto source code">[src]</a></div><a href="#impl-BorrowMut%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.59.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.59.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.borrow_mut" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/borrow.rs.html#219" title="goto source code">[src]</a></div><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/1.59.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.59.0/std/primitive.reference.html">&amp;mut </a>T</h4></div></summary><div class='docblock'><p>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.59.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-From%3CT%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/convert/mod.rs.html#550-554" title="goto source code">[src]</a></div><a href="#impl-From%3CT%3E" class="anchor"></a><h3 class="code-header in-band">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.59.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.from-1" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/convert/mod.rs.html#551" title="goto source code">[src]</a></div><a href="#method.from-1" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/1.59.0/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-Into%3CU%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/convert/mod.rs.html#538-545" title="goto source code">[src]</a></div><a href="#impl-Into%3CU%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.59.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.59.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><div id="method.into" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/convert/mod.rs.html#542" title="goto source code">[src]</a></div><a href="#method.into" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/1.59.0/core/convert/trait.Into.html#tymethod.into" class="fnname">into</a>(self) -&gt; U</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-TryFrom%3CU%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/convert/mod.rs.html#588-597" title="goto source code">[src]</a></div><a href="#impl-TryFrom%3CU%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.59.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.59.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Error-1" class="type 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.59.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.59.0/core/convert/enum.Infallible.html" title="enum core::convert::Infallible">Infallible</a></h4></div></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><div id="method.try_from" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/convert/mod.rs.html#594" title="goto source code">[src]</a></div><a href="#method.try_from" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/1.59.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.59.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.59.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.59.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><div id="impl-TryInto%3CU%3E" class="impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/convert/mod.rs.html#574-583" title="goto source code">[src]</a></div><a href="#impl-TryInto%3CU%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.59.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.59.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,&nbsp;</span></h3></div></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><div id="associatedtype.Error" class="type trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.59.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.59.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.59.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a></h4></div></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><div id="method.try_into" class="method trait-impl has-srclink"><div class="rightside"><a class="srclink" href="https://doc.rust-lang.org/1.59.0/src/core/convert/mod.rs.html#580" title="goto source code">[src]</a></div><a href="#method.try_into" class="anchor"></a><h4 class="code-header">pub fn <a href="https://doc.rust-lang.org/1.59.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.59.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.59.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.59.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></div></summary><div class='docblock'><p>Performs the conversion.</p>
</div></details></div></details></div></section><section id="search" class="content hidden"></section></div></main><div id="rustdoc-vars" data-root-path="../" data-current-crate="fern" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.59.0 (9d1b2106e 2022-02-23)" ></div>
</body></html>