Files
google-apis-rs/darling_core/error/struct.Error.html
2024-03-05 21:06:01 +01:00

140 lines
66 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="An error encountered during attribute parsing."><title>Error in darling_core::error - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><link rel="stylesheet" href="../../static.files/normalize-76eba96aa4d2e634.css"><link rel="stylesheet" href="../../static.files/rustdoc-ac92e1bbe349e143.css"><meta name="rustdoc-vars" data-root-path="../../" data-static-root-path="../../static.files/" data-current-crate="darling_core" data-themes="" data-resource-suffix="" data-rustdoc-version="1.76.0 (07dca489a 2024-02-04)" data-channel="1.76.0" data-search-js="search-2b6ce74ff89ae146.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../static.files/storage-f2adc0d6ca4d09fb.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../static.files/main-305769736d49e732.js"></script><noscript><link rel="stylesheet" href="../../static.files/noscript-feafe1bb7466e4bd.css"></noscript><link rel="alternate icon" type="image/png" href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../darling_core/index.html">darling_core</a><span class="version">0.20.3</span></h2></div><h2 class="location"><a href="#">Error</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.accumulator">accumulator</a></li><li><a href="#method.at">at</a></li><li><a href="#method.at_path">at_path</a></li><li><a href="#method.custom">custom</a></li><li><a href="#method.duplicate_field">duplicate_field</a></li><li><a href="#method.duplicate_field_path">duplicate_field_path</a></li><li><a href="#method.explicit_span">explicit_span</a></li><li><a href="#method.flatten">flatten</a></li><li><a href="#method.has_span">has_span</a></li><li><a href="#method.len">len</a></li><li><a href="#method.missing_field">missing_field</a></li><li><a href="#method.multiple">multiple</a></li><li><a href="#method.span">span</a></li><li><a href="#method.too_few_items">too_few_items</a></li><li><a href="#method.too_many_items">too_many_items</a></li><li><a href="#method.unexpected_expr_type">unexpected_expr_type</a></li><li><a href="#method.unexpected_lit_type">unexpected_lit_type</a></li><li><a href="#method.unexpected_type">unexpected_type</a></li><li><a href="#method.unknown_field">unknown_field</a></li><li><a href="#method.unknown_field_path">unknown_field_path</a></li><li><a href="#method.unknown_field_with_alts">unknown_field_with_alts</a></li><li><a href="#method.unknown_value">unknown_value</a></li><li><a href="#method.unsupported_format">unsupported_format</a></li><li><a href="#method.unsupported_shape">unsupported_shape</a></li><li><a href="#method.unsupported_shape_with_expected">unsupported_shape_with_expected</a></li><li><a href="#method.with_span">with_span</a></li><li><a href="#method.write_errors">write_errors</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-Error">Clone</a></li><li><a href="#impl-Debug-for-Error">Debug</a></li><li><a href="#impl-Display-for-Error">Display</a></li><li><a href="#impl-Error-for-Error">Error</a></li><li><a href="#impl-Extend%3CError%3E-for-Accumulator">Extend&lt;Error&gt;</a></li><li><a href="#impl-From%3CError%3E-for-Error">From&lt;Error&gt;</a></li><li><a href="#impl-From%3CError%3E-for-Error-1">From&lt;Error&gt;</a></li><li><a href="#impl-IntoIterator-for-Error">IntoIterator</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Send-for-Error">!Send</a></li><li><a href="#impl-Sync-for-Error">!Sync</a></li><li><a href="#impl-RefUnwindSafe-for-Error">RefUnwindSafe</a></li><li><a href="#impl-Unpin-for-Error">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Error">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-T">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-T">Into&lt;U&gt;</a></li><li><a href="#impl-ToOwned-for-T">ToOwned</a></li><li><a href="#impl-ToString-for-T">ToString</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In darling_core::error</a></h2></div></nav><div class="sidebar-resizer"></div>
<main><div class="width-limiter"><nav class="sub"><form class="search-form"><span></span><div id="sidebar-button" tabindex="-1"><a href="../../darling_core/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../index.html">darling_core</a>::<wbr><a href="index.html">error</a>::<wbr><a class="struct" href="#">Error</a><button id="copy-path" title="Copy item path to clipboard"><img src="../../static.files/clipboard-7571035ce49a181d.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="src" href="../../src/darling_core/error/mod.rs.html#62-70">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub struct Error { <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>An error encountered during attribute parsing.</p>
<p>Given that most errors darling encounters represent code bugs in dependent crates,
the internal structure of the error is deliberately opaque.</p>
<h2 id="usage"><a href="#usage">Usage</a></h2>
<p>Proc-macro expansion happens very infrequently compared to runtime tasks such as
deserialization, and it happens in the context of an expensive compilation taks.
For that reason, darling prefers not to fail on the first error it encounters, instead
doing as much work as it can, accumulating errors into a single report.</p>
<p>As a result, <code>darling::Error</code> is more of guaranteed-non-empty error collection
than a single problem. These errors also have some notion of hierarchy, stemming from
the hierarchical nature of darlings input.</p>
<p>These characteristics make for great experiences when using darling-powered crates,
provided crates using darling adhere to some best practices:</p>
<ol>
<li>Do not attempt to simplify a <code>darling::Error</code> into some other error type, such as
<code>syn::Error</code>. To surface compile errors, instead use <code>darling::Error::write_errors</code>.
This preserves all span information, suggestions, etc. Wrapping a <code>darling::Error</code> in
a custom error enum works as-expected and does not force any loss of fidelity.</li>
<li>Do not use early return (e.g. the <code>?</code> operator) for custom validations. Instead,
create an <a href="struct.Accumulator.html" title="struct darling_core::error::Accumulator"><code>error::Accumulator</code></a> to collect errors as they are encountered. Then use
<a href="struct.Accumulator.html#method.finish" title="method darling_core::error::Accumulator::finish"><code>Accumulator::finish</code></a> to return your validated result; it will give <code>Ok</code> if and only if
no errors were encountered. This can create very complex custom validation functions;
in those cases, split independent “validation chains” out into their own functions to
keep the main validator manageable.</li>
<li>Use <code>darling::Error::custom</code> to create additional errors as-needed, then call <code>with_span</code>
to ensure those errors appear in the right place. Use <code>darling::util::SpannedValue</code> to keep
span information around on parsed fields so that custom diagnostics can point to the correct
parts of the input AST.</li>
</ol>
</div></details><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-Error" class="impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#73-282">source</a><a href="#impl-Error" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section></summary><div class="docblock"><p>Error creation functions</p>
</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.custom" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#85-87">source</a><h4 class="code-header">pub fn <a href="#method.custom" class="fn">custom</a>&lt;T: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>&gt;(msg: T) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error with a custom message.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.duplicate_field" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#90-92">source</a><h4 class="code-header">pub fn <a href="#method.duplicate_field" class="fn">duplicate_field</a>(name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error for a field that appears twice in the input.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.duplicate_field_path" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#96-98">source</a><h4 class="code-header">pub fn <a href="#method.duplicate_field_path" class="fn">duplicate_field_path</a>(path: &amp;<a class="struct" href="../../syn/path/struct.Path.html" title="struct syn::path::Path">Path</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error for a field that appears twice in the input. Helper to avoid repeating
the syn::Path to String conversion.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.missing_field" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#101-103">source</a><h4 class="code-header">pub fn <a href="#method.missing_field" class="fn">missing_field</a>(name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error for a non-optional field that does not appear in the input.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.unknown_field" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#107-109">source</a><h4 class="code-header">pub fn <a href="#method.unknown_field" class="fn">unknown_field</a>(name: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error for a field name that appears in the input but does not correspond
to a known field.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.unknown_field_path" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#113-115">source</a><h4 class="code-header">pub fn <a href="#method.unknown_field_path" class="fn">unknown_field_path</a>(path: &amp;<a class="struct" href="../../syn/path/struct.Path.html" title="struct syn::path::Path">Path</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error for a field name that appears in the input but does not correspond
to a known field. Helper to avoid repeating the syn::Path to String conversion.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.unknown_field_with_alts" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#120-126">source</a><h4 class="code-header">pub fn <a href="#method.unknown_field_with_alts" class="fn">unknown_field_with_alts</a>&lt;'a, T, I&gt;(field: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>, alternates: I) -&gt; Self<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>&gt; + 'a,
I: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&amp;'a T</a>&gt;,</div></h4></section></summary><div class="docblock"><p>Creates a new error for a field name that appears in the input but does not correspond to
a known attribute. The second argument is the list of known attributes; if a similar name
is found that will be shown in the emitted error message.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.unsupported_shape" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#129-134">source</a><h4 class="code-header">pub fn <a href="#method.unsupported_shape" class="fn">unsupported_shape</a>(shape: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error for a struct or variant that does not adhere to the supported shape.</p>
</div></details><section id="method.unsupported_shape_with_expected" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#136-141">source</a><h4 class="code-header">pub fn <a href="#method.unsupported_shape_with_expected" class="fn">unsupported_shape_with_expected</a>&lt;T: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>&gt;(
shape: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>,
expected: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&amp;T</a>
) -&gt; Self</h4></section><section id="method.unsupported_format" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#143-145">source</a><h4 class="code-header">pub fn <a href="#method.unsupported_format" class="fn">unsupported_format</a>(format: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section><details class="toggle method-toggle" open><summary><section id="method.unexpected_type" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#148-150">source</a><h4 class="code-header">pub fn <a href="#method.unexpected_type" class="fn">unexpected_type</a>(ty: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error for a field which has an unexpected literal type.</p>
</div></details><section id="method.unexpected_expr_type" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#152-197">source</a><h4 class="code-header">pub fn <a href="#method.unexpected_expr_type" class="fn">unexpected_expr_type</a>(expr: &amp;<a class="enum" href="../../syn/expr/enum.Expr.html" title="enum syn::expr::Expr">Expr</a>) -&gt; Self</h4></section><details class="toggle method-toggle" open><summary><section id="method.unexpected_lit_type" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#228-242">source</a><h4 class="code-header">pub fn <a href="#method.unexpected_lit_type" class="fn">unexpected_lit_type</a>(lit: &amp;<a class="enum" href="../../syn/lit/enum.Lit.html" title="enum syn::lit::Lit">Lit</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error for a field which has an unexpected literal type. This will automatically
extract the literal type name from the passed-in <code>Lit</code> and set the span to encompass only the
literal value.</p>
<h5 id="usage-1"><a href="#usage-1">Usage</a></h5>
<p>This is most frequently used in overrides of the <code>FromMeta::from_value</code> method.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code>
<span class="kw">use </span>darling::{FromMeta, Error, <span class="prelude-ty">Result</span>};
<span class="kw">use </span>syn::{Lit, LitStr};
<span class="kw">pub struct </span>Foo(String);
<span class="kw">impl </span>FromMeta <span class="kw">for </span>Foo {
<span class="kw">fn </span>from_value(value: <span class="kw-2">&amp;</span>Lit) -&gt; <span class="prelude-ty">Result</span>&lt;<span class="self">Self</span>&gt; {
<span class="kw">if let </span>Lit::Str(<span class="kw-2">ref </span>lit_str) = <span class="kw-2">*</span>value {
<span class="prelude-val">Ok</span>(Foo(lit_str.value()))
} <span class="kw">else </span>{
<span class="prelude-val">Err</span>(Error::unexpected_lit_type(value))
}
}
}
</code></pre></div>
</div></details><details class="toggle method-toggle" open><summary><section id="method.unknown_value" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#245-247">source</a><h4 class="code-header">pub fn <a href="#method.unknown_value" class="fn">unknown_value</a>(value: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error for a value which doesnt match a set of expected literals.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.too_few_items" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#250-252">source</a><h4 class="code-header">pub fn <a href="#method.too_few_items" class="fn">too_few_items</a>(min: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error for a list which did not get enough items to proceed.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.too_many_items" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#256-258">source</a><h4 class="code-header">pub fn <a href="#method.too_many_items" class="fn">too_many_items</a>(max: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.usize.html">usize</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Creates a new error when a list got more items than it supports. The <code>max</code> argument
is the largest number of items the receiver could accept.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.multiple" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#266-274">source</a><h4 class="code-header">pub fn <a href="#method.multiple" class="fn">multiple</a>(errors: <a class="struct" href="https://doc.rust-lang.org/1.76.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a>&gt;) -&gt; Self</h4></section></summary><div class="docblock"><p>Bundle a set of multiple errors into a single <code>Error</code> instance.</p>
<p>Usually it will be more convenient to use an <a href="struct.Accumulator.html" title="struct darling_core::error::Accumulator"><code>error::Accumulator</code></a>.</p>
<h5 id="panics"><a href="#panics">Panics</a></h5>
<p>This function will panic if <code>errors.is_empty() == true</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.accumulator" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#279-281">source</a><h4 class="code-header">pub fn <a href="#method.accumulator" class="fn">accumulator</a>() -&gt; <a class="struct" href="struct.Accumulator.html" title="struct darling_core::error::Accumulator">Accumulator</a></h4></section></summary><div class="docblock"><p>Creates an error collector, for aggregating multiple errors</p>
<p>See <a href="struct.Accumulator.html" title="struct darling_core::error::Accumulator"><code>Accumulator</code></a> for details.</p>
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Error-1" class="impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#295-498">source</a><a href="#impl-Error-1" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section></summary><div class="docblock"><p>Error instance methods</p>
</div><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.has_span" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#297-299">source</a><h4 class="code-header">pub fn <a href="#method.has_span" class="fn">has_span</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Check if this error is associated with a span in the token stream.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.with_span" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#312-318">source</a><h4 class="code-header">pub fn <a href="#method.with_span" class="fn">with_span</a>&lt;T: <a class="trait" href="../../syn/spanned/trait.Spanned.html" title="trait syn::spanned::Spanned">Spanned</a>&gt;(self, node: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&amp;T</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Tie a span to the error if none is already present. This is used in <code>darling::FromMeta</code>
and other traits to attach errors to the most specific possible location in the input
source code.</p>
<p>All <code>darling</code>-built impls, either from the crate or from the proc macro, will call this
when appropriate during parsing, so it should not be necessary to call this unless you have
overridden:</p>
<ul>
<li><code>FromMeta::from_meta</code></li>
<li><code>FromMeta::from_nested_meta</code></li>
<li><code>FromMeta::from_value</code></li>
</ul>
</div></details><details class="toggle method-toggle" open><summary><section id="method.span" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#325-327">source</a><h4 class="code-header">pub fn <a href="#method.span" class="fn">span</a>(&amp;self) -&gt; <a class="struct" href="../../proc_macro2/struct.Span.html" title="struct proc_macro2::Span">Span</a></h4></section></summary><div class="docblock"><p>Get a span for the error.</p>
<h5 id="return-value"><a href="#return-value">Return Value</a></h5>
<p>This function will return <a href="../../proc_macro2/struct.Span.html" title="struct proc_macro2::Span"><code>Span::call_site()</code></a> if <a href="struct.Error.html#method.has_span" title="method darling_core::error::Error::has_span"><code>Self::has_span</code></a> is <code>false</code>.
To get the span only if one has been explicitly set for <code>self</code>, instead use <a href="struct.Error.html#method.explicit_span" title="method darling_core::error::Error::explicit_span"><code>Error::explicit_span</code></a>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.explicit_span" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#330-332">source</a><h4 class="code-header">pub fn <a href="#method.explicit_span" class="fn">explicit_span</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.76.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../proc_macro2/struct.Span.html" title="struct proc_macro2::Span">Span</a>&gt;</h4></section></summary><div class="docblock"><p>Get the span for <code>self</code>, if one has been set.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.flatten" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#339-341">source</a><h4 class="code-header">pub fn <a href="#method.flatten" class="fn">flatten</a>(self) -&gt; Self</h4></section></summary><div class="docblock"><p>Recursively converts a tree of errors to a flattened list.</p>
<h5 id="child-diagnostics"><a href="#child-diagnostics">Child Diagnostics</a></h5>
<p>If the <code>diagnostics</code> feature is enabled, any child diagnostics on <code>self</code>
will be cloned down to all the errors within <code>self</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.at" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#372-375">source</a><h4 class="code-header">pub fn <a href="#method.at" class="fn">at</a>&lt;T: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a>&gt;(self, location: T) -&gt; Self</h4></section></summary><div class="docblock"><p>Adds a location to the error, such as a field or variant.
Locations must be added in reverse order of specificity.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.at_path" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#380-382">source</a><h4 class="code-header">pub fn <a href="#method.at_path" class="fn">at_path</a>(self, path: &amp;<a class="struct" href="../../syn/path/struct.Path.html" title="struct syn::path::Path">Path</a>) -&gt; Self</h4></section></summary><div class="docblock"><p>Adds a location to the error, such as a field or variant.
Locations must be added in reverse order of specificity. This is a helper function to avoid
repeating path to string logic.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.len" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#388-390">source</a><h4 class="code-header">pub fn <a href="#method.len" class="fn">len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.usize.html">usize</a></h4></section></summary><div class="docblock"><p>Gets the number of individual errors in this error.</p>
<p>This function never returns <code>0</code>, as its impossible to construct
a multi-error from an empty <code>Vec</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.write_errors" class="method"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#427-438">source</a><h4 class="code-header">pub fn <a href="#method.write_errors" class="fn">write_errors</a>(self) -&gt; <a class="struct" href="../../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></h4></section></summary><div class="docblock"><p>Write this error and any children as compile errors into a <code>TokenStream</code> to
be returned by the proc-macro.</p>
<p>The behavior of this method will be slightly different if the <code>diagnostics</code> feature
is enabled: In that case, the diagnostics will be emitted immediately by this call,
and an empty <code>TokenStream</code> will be returned.</p>
<p>Return these tokens unmodified to avoid disturbing the attached span information.</p>
<h5 id="usage-2"><a href="#usage-2">Usage</a></h5>
<div class="example-wrap ignore"><a href="#" class="tooltip" title="This example is not tested"></a><pre class="rust rust-example-rendered"><code><span class="comment">// in your proc-macro function
</span><span class="kw">let </span>opts = <span class="kw">match </span>MyOptions::from_derive_input(<span class="kw-2">&amp;</span>ast) {
<span class="prelude-val">Ok</span>(val) =&gt; val,
<span class="prelude-val">Err</span>(err) =&gt; {
<span class="kw">return </span>err.write_errors();
}
}</code></pre></div>
</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-Error" class="impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#61">source</a><a href="#impl-Clone-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#61">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.76.0/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.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.76.0/src/core/clone.rs.html#169">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&amp;Self</a>)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.76.0/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-Error" class="impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#61">source</a><a href="#impl-Debug-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt-1" class="method trait-impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#61">source</a><a href="#method.fmt-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/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/1.76.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.76.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Display-for-Error" class="impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#580-589">source</a><a href="#impl-Display-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#581-588">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.76.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.76.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html#tymethod.fmt">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Error-for-Error" class="impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#570-578">source</a><a href="#impl-Error-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/error/trait.Error.html" title="trait core::error::Error">Error</a> for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.description" class="method trait-impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#571-573">source</a><a href="#method.description" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/error/trait.Error.html#method.description" class="fn">description</a>(&amp;self) -&gt; &amp;<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.str.html">str</a></h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.42.0: use the Display impl or to_string()</span></div></span><div class='docblock'> <a href="https://doc.rust-lang.org/1.76.0/core/error/trait.Error.html#method.description">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.cause" class="method trait-impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#575-577">source</a><a href="#method.cause" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/error/trait.Error.html#method.cause" class="fn">cause</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.76.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;dyn <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/error/trait.Error.html" title="trait core::error::Error">StdError</a>&gt;</h4></section></summary><span class="item-info"><div class="stab deprecated"><span class="emoji">👎</span><span>Deprecated since 1.33.0: replaced by Error::source, which can support downcasting</span></div></span></details><details class="toggle method-toggle" open><summary><section id="method.source" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.30.0">1.30.0</span> · <a class="src" href="https://doc.rust-lang.org/1.76.0/src/core/error.rs.html#84">source</a></span><a href="#method.source" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/error/trait.Error.html#method.source" class="fn">source</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.76.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;(dyn <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/error/trait.Error.html" title="trait core::error::Error">Error</a> + 'static)&gt;</h4></section></summary><div class='docblock'>The lower-level source of this error, if any. <a href="https://doc.rust-lang.org/1.76.0/core/error/trait.Error.html#method.source">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.provide" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.76.0/src/core/error.rs.html#184">source</a><a href="#method.provide" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/error/trait.Error.html#method.provide" class="fn">provide</a>&lt;'a&gt;(&amp;'a self, request: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.76.0/core/error/struct.Request.html" title="struct core::error::Request">Request</a>&lt;'a&gt;)</h4></section></summary><span class="item-info"><div class="stab unstable"><span class="emoji">🔬</span><span>This is a nightly-only experimental API. (<code>error_generic_member_access</code>)</span></div></span><div class='docblock'>Provides type based access to context intended for error reports. <a href="https://doc.rust-lang.org/1.76.0/core/error/trait.Error.html#method.provide">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Extend%3CError%3E-for-Accumulator" class="impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#842-849">source</a><a href="#impl-Extend%3CError%3E-for-Accumulator" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.Extend.html" title="trait core::iter::traits::collect::Extend">Extend</a>&lt;<a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a>&gt; for <a class="struct" href="struct.Accumulator.html" title="struct darling_core::error::Accumulator">Accumulator</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.extend" class="method trait-impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#843-848">source</a><a href="#method.extend" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.Extend.html#tymethod.extend" class="fn">extend</a>&lt;I&gt;(&amp;mut self, iter: I)<div class="where">where
I: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a>&gt;,</div></h4></section></summary><div class='docblock'>Extends a collection with the contents of an iterator. <a href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.Extend.html#tymethod.extend">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.extend_one" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.76.0/src/core/iter/traits/collect.rs.html#376">source</a><a href="#method.extend_one" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.Extend.html#method.extend_one" class="fn">extend_one</a>(&amp;mut self, item: 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>extend_one</code>)</span></div></span><div class='docblock'>Extends a collection with exactly one element.</div></details><details class="toggle method-toggle" open><summary><section id="method.extend_reserve" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.76.0/src/core/iter/traits/collect.rs.html#384">source</a><a href="#method.extend_reserve" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.Extend.html#method.extend_reserve" class="fn">extend_reserve</a>(&amp;mut self, additional: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.usize.html">usize</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>extend_one</code>)</span></div></span><div class='docblock'>Reserves capacity in a collection for the given number of additional elements. <a href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.Extend.html#method.extend_reserve">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Error" class="impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#591-602">source</a><a href="#impl-From%3CError%3E-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="../../syn/error/struct.Error.html" title="struct syn::error::Error">Error</a>&gt; for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></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="../../src/darling_core/error/mod.rs.html#592-601">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(e: <a class="struct" href="../../syn/error/struct.Error.html" title="struct syn::error::Error">Error</a>) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-From%3CError%3E-for-Error-1" class="impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#604-630">source</a><a href="#impl-From%3CError%3E-for-Error-1" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;<a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a>&gt; for <a class="struct" href="../../syn/error/struct.Error.html" title="struct syn::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-1" class="method trait-impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#605-629">source</a><a href="#method.from-1" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(e: <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a>) -&gt; Self</h4></section></summary><div class='docblock'>Converts to this type from the input type.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-IntoIterator-for-Error" class="impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#645-660">source</a><a href="#impl-IntoIterator-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a> for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Item" class="associatedtype trait-impl"><a href="#associatedtype.Item" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.Item" class="associatedtype">Item</a> = <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h4></section></summary><div class='docblock'>The type of the elements being iterated over.</div></details><details class="toggle" open><summary><section id="associatedtype.IntoIter" class="associatedtype trait-impl"><a href="#associatedtype.IntoIter" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.IntoIterator.html#associatedtype.IntoIter" class="associatedtype">IntoIter</a> = <a class="struct" href="struct.IntoIter.html" title="struct darling_core::error::IntoIter">IntoIter</a></h4></section></summary><div class='docblock'>Which kind of iterator are we turning this into?</div></details><details class="toggle method-toggle" open><summary><section id="method.into_iter" class="method trait-impl"><a class="src rightside" href="../../src/darling_core/error/mod.rs.html#649-659">source</a><a href="#method.into_iter" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter" class="fn">into_iter</a>(self) -&gt; <a class="struct" href="struct.IntoIter.html" title="struct darling_core::error::IntoIter">IntoIter</a> <a href="#" class="tooltip" data-notable-ty="IntoIter"></a></h4></section></summary><div class='docblock'>Creates an iterator from a value. <a href="https://doc.rust-lang.org/1.76.0/core/iter/traits/collect/trait.IntoIterator.html#tymethod.into_iter">Read more</a></div></details></div></details></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-RefUnwindSafe-for-Error" class="impl"><a href="#impl-RefUnwindSafe-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section><section id="impl-Send-for-Error" class="impl"><a href="#impl-Send-for-Error" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section><section id="impl-Sync-for-Error" class="impl"><a href="#impl-Sync-for-Error" class="anchor">§</a><h3 class="code-header">impl !<a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section><section id="impl-Unpin-for-Error" class="impl"><a href="#impl-Unpin-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</a></h3></section><section id="impl-UnwindSafe-for-Error" class="impl"><a href="#impl-UnwindSafe-for-Error" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.Error.html" title="struct darling_core::error::Error">Error</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/1.76.0/src/core/any.rs.html#140">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/1.76.0/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/1.76.0/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/1.76.0/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/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/1.76.0/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/1.76.0/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/1.76.0/src/core/borrow.rs.html#208">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/1.76.0/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/1.76.0/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/1.76.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.76.0/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/1.76.0/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/1.76.0/src/core/borrow.rs.html#216">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/1.76.0/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/1.76.0/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/1.76.0/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/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/1.76.0/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/1.76.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">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/1.76.0/src/core/convert/mod.rs.html#763">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/1.76.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-2" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.76.0/src/core/convert/mod.rs.html#766">source</a><a href="#method.from-2" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/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-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.76.0/src/core/convert/mod.rs.html#747-749">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/1.76.0/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/1.76.0/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/1.76.0/src/core/convert/mod.rs.html#756">source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/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/1.76.0/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/1.76.0/src/alloc/borrow.rs.html#83-85">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/1.76.0/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/1.76.0/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 href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.76.0/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/1.76.0/src/alloc/borrow.rs.html#88">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/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/1.76.0/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/1.76.0/src/alloc/borrow.rs.html#92">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/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/1.76.0/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/1.76.0/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToString-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.76.0/src/alloc/string.rs.html#2600">source</a><a href="#impl-ToString-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.76.0/alloc/string/trait.ToString.html" title="trait alloc::string::ToString">ToString</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/fmt/trait.Display.html" title="trait core::fmt::Display">Display</a> + ?<a class="trait" href="https://doc.rust-lang.org/1.76.0/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.to_string" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.76.0/src/alloc/string.rs.html#2606">source</a><a href="#method.to_string" class="anchor">§</a><h4 class="code-header">default fn <a href="https://doc.rust-lang.org/1.76.0/alloc/string/trait.ToString.html#tymethod.to_string" class="fn">to_string</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.76.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a></h4></section></summary><div class='docblock'>Converts the given value to a <code>String</code>. <a href="https://doc.rust-lang.org/1.76.0/alloc/string/trait.ToString.html#tymethod.to_string">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/1.76.0/src/core/convert/mod.rs.html#803-805">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/1.76.0/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/1.76.0/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 href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.76.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.76.0/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/1.76.0/src/core/convert/mod.rs.html#810">source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/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/1.76.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.76.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.76.0/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/1.76.0/src/core/convert/mod.rs.html#788-790">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/1.76.0/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/1.76.0/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 href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.76.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.76.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.76.0/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/1.76.0/src/core/convert/mod.rs.html#795">source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.76.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.76.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.76.0/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></div><script type="text/json" id="notable-traits-data">{"IntoIter":"<h3>Notable traits for <code><a class=\"struct\" href=\"struct.IntoIter.html\" title=\"struct darling_core::error::IntoIter\">IntoIter</a></code></h3><pre><code><div class=\"where\">impl <a class=\"trait\" href=\"https://doc.rust-lang.org/1.76.0/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter::traits::iterator::Iterator\">Iterator</a> for <a class=\"struct\" href=\"struct.IntoIter.html\" title=\"struct darling_core::error::IntoIter\">IntoIter</a></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/1.76.0/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = <a class=\"struct\" href=\"struct.Error.html\" title=\"struct darling_core::error::Error\">Error</a>;</div>"}</script></section></div></main></body></html>