mirror of
https://github.com/edg-l/edlang.git
synced 2024-11-23 00:18:24 +00:00
207 lines
112 KiB
HTML
207 lines
112 KiB
HTML
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A Rust expression."><title>Expr in syn - 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="syn" 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 enum"><!--[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">☰</button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../syn/index.html">syn</a><span class="version">2.0.51</span></h2></div><h2 class="location"><a href="#">Expr</a></h2><div class="sidebar-elems"><section><h3><a href="#variants">Variants</a></h3><ul class="block variant"><li><a href="#variant.Array">Array</a></li><li><a href="#variant.Assign">Assign</a></li><li><a href="#variant.Async">Async</a></li><li><a href="#variant.Await">Await</a></li><li><a href="#variant.Binary">Binary</a></li><li><a href="#variant.Block">Block</a></li><li><a href="#variant.Break">Break</a></li><li><a href="#variant.Call">Call</a></li><li><a href="#variant.Cast">Cast</a></li><li><a href="#variant.Closure">Closure</a></li><li><a href="#variant.Const">Const</a></li><li><a href="#variant.Continue">Continue</a></li><li><a href="#variant.Field">Field</a></li><li><a href="#variant.ForLoop">ForLoop</a></li><li><a href="#variant.Group">Group</a></li><li><a href="#variant.If">If</a></li><li><a href="#variant.Index">Index</a></li><li><a href="#variant.Infer">Infer</a></li><li><a href="#variant.Let">Let</a></li><li><a href="#variant.Lit">Lit</a></li><li><a href="#variant.Loop">Loop</a></li><li><a href="#variant.Macro">Macro</a></li><li><a href="#variant.Match">Match</a></li><li><a href="#variant.MethodCall">MethodCall</a></li><li><a href="#variant.Paren">Paren</a></li><li><a href="#variant.Path">Path</a></li><li><a href="#variant.Range">Range</a></li><li><a href="#variant.Reference">Reference</a></li><li><a href="#variant.Repeat">Repeat</a></li><li><a href="#variant.Return">Return</a></li><li><a href="#variant.Struct">Struct</a></li><li><a href="#variant.Try">Try</a></li><li><a href="#variant.TryBlock">TryBlock</a></li><li><a href="#variant.Tuple">Tuple</a></li><li><a href="#variant.Unary">Unary</a></li><li><a href="#variant.Unsafe">Unsafe</a></li><li><a href="#variant.Verbatim">Verbatim</a></li><li><a href="#variant.While">While</a></li><li><a href="#variant.Yield">Yield</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.parse_without_eager_brace">parse_without_eager_brace</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Clone-for-Expr">Clone</a></li><li><a href="#impl-Debug-for-Expr">Debug</a></li><li><a href="#impl-Eq-for-Expr">Eq</a></li><li><a href="#impl-From%3CExprArray%3E-for-Expr">From<ExprArray></a></li><li><a href="#impl-From%3CExprAssign%3E-for-Expr">From<ExprAssign></a></li><li><a href="#impl-From%3CExprAsync%3E-for-Expr">From<ExprAsync></a></li><li><a href="#impl-From%3CExprAwait%3E-for-Expr">From<ExprAwait></a></li><li><a href="#impl-From%3CExprBinary%3E-for-Expr">From<ExprBinary></a></li><li><a href="#impl-From%3CExprBlock%3E-for-Expr">From<ExprBlock></a></li><li><a href="#impl-From%3CExprBreak%3E-for-Expr">From<ExprBreak></a></li><li><a href="#impl-From%3CExprCall%3E-for-Expr">From<ExprCall></a></li><li><a href="#impl-From%3CExprCast%3E-for-Expr">From<ExprCast></a></li><li><a href="#impl-From%3CExprClosure%3E-for-Expr">From<ExprClosure></a></li><li><a href="#impl-From%3CExprConst%3E-for-Expr">From<ExprConst></a></li><li><a href="#impl-From%3CExprContinue%3E-for-Expr">From<ExprContinue></a></li><li><a href="#impl-From%3CExprField%3E-for-Expr">From<ExprField></a></li><li><a href="#impl-From%3CExprForLoop%3E-for-Expr">From<ExprForLoop></a></li><li><a href="#impl-From%3CExprGroup%3E-for-Expr">From<ExprGroup></a></li><li><a href="#impl-From%3CExprIf%3E-for-Expr">From<ExprIf></a></li><li><a href="#impl-From%3CExprIndex%3E-for-Expr">From<ExprIndex></a></li><li><a href="#impl-From%3CExprInfer%3E-for-Expr">From<ExprInfer></a></li><li><a href="#impl-From%3CExprLet%3E-for-Expr">From<ExprLet></a></li><li><a href="#impl-From%3CExprLit%3E-for-Expr">From<ExprLit></a></li><li><a href="#impl-From%3CExprLoop%3E-for-Expr">From<ExprLoop></a></li><li><a href="#impl-From%3CExprMacro%3E-for-Expr">From<ExprMacro></a></li><li><a href="#impl-From%3CExprMatch%3E-for-Expr">From<ExprMatch></a></li><li><a href="#impl-From%3CExprMethodCall%3E-for-Expr">From<ExprMethodCall></a></li><li><a href="#impl-From%3CExprParen%3E-for-Expr">From<ExprParen></a></li><li><a href="#impl-From%3CExprPath%3E-for-Expr">From<ExprPath></a></li><li><a href="#impl-From%3CExprRange%3E-for-Expr">From<ExprRange></a></li><li><a href="#impl-From%3CExprReference%3E-for-Expr">From<ExprReference></a></li><li><a href="#impl-From%3CExprRepeat%3E-for-Expr">From<ExprRepeat></a></li><li><a href="#impl-From%3CExprReturn%3E-for-Expr">From<ExprReturn></a></li><li><a href="#impl-From%3CExprStruct%3E-for-Expr">From<ExprStruct></a></li><li><a href="#impl-From%3CExprTry%3E-for-Expr">From<ExprTry></a></li><li><a href="#impl-From%3CExprTryBlock%3E-for-Expr">From<ExprTryBlock></a></li><li><a href="#impl-From%3CExprTuple%3E-for-Expr">From<ExprTuple></a></li><li><a href="#impl-From%3CExprUnary%3E-for-Expr">From<ExprUnary></a></li><li><a href="#impl-From%3CExprUnsafe%3E-for-Expr">From<ExprUnsafe></a></li><li><a href="#impl-From%3CExprWhile%3E-for-Expr">From<ExprWhile></a></li><li><a href="#impl-From%3CExprYield%3E-for-Expr">From<ExprYield></a></li><li><a href="#impl-Hash-for-Expr">Hash</a></li><li><a href="#impl-Parse-for-Expr">Parse</a></li><li><a href="#impl-PartialEq-for-Expr">PartialEq</a></li><li><a href="#impl-ToTokens-for-Expr">ToTokens</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Send-for-Expr">!Send</a></li><li><a href="#impl-Sync-for-Expr">!Sync</a></li><li><a href="#impl-RefUnwindSafe-for-Expr">RefUnwindSafe</a></li><li><a href="#impl-Unpin-for-Expr">Unpin</a></li><li><a href="#impl-UnwindSafe-for-Expr">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<T></a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut<T></a></li><li><a href="#impl-From%3CT%3E-for-T">From<T></a></li><li><a href="#impl-Into%3CU%3E-for-T">Into<U></a></li><li><a href="#impl-Spanned-for-T">Spanned</a></li><li><a href="#impl-ToOwned-for-T">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom<U></a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto<U></a></li></ul></section><h2><a href="index.html">In crate syn</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="../syn/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>Enum <a href="index.html">syn</a>::<wbr><a class="enum" href="#">Expr</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/syn/expr.rs.html#29-258">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>−</span>]</button></span></div><pre class="rust item-decl"><code><div class="code-attribute">#[non_exhaustive]</div>pub enum Expr {
|
||
<details class="toggle type-contents-toggle"><summary class="hideme"><span>Show 39 variants</span></summary> Array(<a class="struct" href="struct.ExprArray.html" title="struct syn::ExprArray">ExprArray</a>),
|
||
Assign(<a class="struct" href="struct.ExprAssign.html" title="struct syn::ExprAssign">ExprAssign</a>),
|
||
Async(<a class="struct" href="struct.ExprAsync.html" title="struct syn::ExprAsync">ExprAsync</a>),
|
||
Await(<a class="struct" href="struct.ExprAwait.html" title="struct syn::ExprAwait">ExprAwait</a>),
|
||
Binary(<a class="struct" href="struct.ExprBinary.html" title="struct syn::ExprBinary">ExprBinary</a>),
|
||
Block(<a class="struct" href="struct.ExprBlock.html" title="struct syn::ExprBlock">ExprBlock</a>),
|
||
Break(<a class="struct" href="struct.ExprBreak.html" title="struct syn::ExprBreak">ExprBreak</a>),
|
||
Call(<a class="struct" href="struct.ExprCall.html" title="struct syn::ExprCall">ExprCall</a>),
|
||
Cast(<a class="struct" href="struct.ExprCast.html" title="struct syn::ExprCast">ExprCast</a>),
|
||
Closure(<a class="struct" href="struct.ExprClosure.html" title="struct syn::ExprClosure">ExprClosure</a>),
|
||
Const(<a class="struct" href="struct.ExprConst.html" title="struct syn::ExprConst">ExprConst</a>),
|
||
Continue(<a class="struct" href="struct.ExprContinue.html" title="struct syn::ExprContinue">ExprContinue</a>),
|
||
Field(<a class="struct" href="struct.ExprField.html" title="struct syn::ExprField">ExprField</a>),
|
||
ForLoop(<a class="struct" href="struct.ExprForLoop.html" title="struct syn::ExprForLoop">ExprForLoop</a>),
|
||
Group(<a class="struct" href="struct.ExprGroup.html" title="struct syn::ExprGroup">ExprGroup</a>),
|
||
If(<a class="struct" href="struct.ExprIf.html" title="struct syn::ExprIf">ExprIf</a>),
|
||
Index(<a class="struct" href="struct.ExprIndex.html" title="struct syn::ExprIndex">ExprIndex</a>),
|
||
Infer(<a class="struct" href="struct.ExprInfer.html" title="struct syn::ExprInfer">ExprInfer</a>),
|
||
Let(<a class="struct" href="struct.ExprLet.html" title="struct syn::ExprLet">ExprLet</a>),
|
||
Lit(<a class="struct" href="struct.ExprLit.html" title="struct syn::ExprLit">ExprLit</a>),
|
||
Loop(<a class="struct" href="struct.ExprLoop.html" title="struct syn::ExprLoop">ExprLoop</a>),
|
||
Macro(<a class="struct" href="struct.ExprMacro.html" title="struct syn::ExprMacro">ExprMacro</a>),
|
||
Match(<a class="struct" href="struct.ExprMatch.html" title="struct syn::ExprMatch">ExprMatch</a>),
|
||
MethodCall(<a class="struct" href="struct.ExprMethodCall.html" title="struct syn::ExprMethodCall">ExprMethodCall</a>),
|
||
Paren(<a class="struct" href="struct.ExprParen.html" title="struct syn::ExprParen">ExprParen</a>),
|
||
Path(<a class="struct" href="struct.ExprPath.html" title="struct syn::ExprPath">ExprPath</a>),
|
||
Range(<a class="struct" href="struct.ExprRange.html" title="struct syn::ExprRange">ExprRange</a>),
|
||
Reference(<a class="struct" href="struct.ExprReference.html" title="struct syn::ExprReference">ExprReference</a>),
|
||
Repeat(<a class="struct" href="struct.ExprRepeat.html" title="struct syn::ExprRepeat">ExprRepeat</a>),
|
||
Return(<a class="struct" href="struct.ExprReturn.html" title="struct syn::ExprReturn">ExprReturn</a>),
|
||
Struct(<a class="struct" href="struct.ExprStruct.html" title="struct syn::ExprStruct">ExprStruct</a>),
|
||
Try(<a class="struct" href="struct.ExprTry.html" title="struct syn::ExprTry">ExprTry</a>),
|
||
TryBlock(<a class="struct" href="struct.ExprTryBlock.html" title="struct syn::ExprTryBlock">ExprTryBlock</a>),
|
||
Tuple(<a class="struct" href="struct.ExprTuple.html" title="struct syn::ExprTuple">ExprTuple</a>),
|
||
Unary(<a class="struct" href="struct.ExprUnary.html" title="struct syn::ExprUnary">ExprUnary</a>),
|
||
Unsafe(<a class="struct" href="struct.ExprUnsafe.html" title="struct syn::ExprUnsafe">ExprUnsafe</a>),
|
||
Verbatim(<a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a>),
|
||
While(<a class="struct" href="struct.ExprWhile.html" title="struct syn::ExprWhile">ExprWhile</a>),
|
||
Yield(<a class="struct" href="struct.ExprYield.html" title="struct syn::ExprYield">ExprYield</a>),
|
||
</details>}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A Rust expression.</p>
|
||
<p><em>This type is available only if Syn is built with the <code>"derive"</code> or <code>"full"</code>
|
||
feature, but most of the variants are not available unless “full” is enabled.</em></p>
|
||
<h2 id="syntax-tree-enums"><a href="#syntax-tree-enums">Syntax tree enums</a></h2>
|
||
<p>This type is a syntax tree enum. In Syn this and other syntax tree enums
|
||
are designed to be traversed using the following rebinding idiom.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let </span>expr: Expr = <span class="comment">/* ... */</span>;
|
||
<span class="kw">match </span>expr {
|
||
Expr::MethodCall(expr) => {
|
||
<span class="comment">/* ... */
|
||
</span>}
|
||
Expr::Cast(expr) => {
|
||
<span class="comment">/* ... */
|
||
</span>}
|
||
Expr::If(expr) => {
|
||
<span class="comment">/* ... */
|
||
</span>}
|
||
|
||
<span class="comment">/* ... */</span></code></pre></div>
|
||
<p>We begin with a variable <code>expr</code> of type <code>Expr</code> that has no fields
|
||
(because it is an enum), and by matching on it and rebinding a variable
|
||
with the same name <code>expr</code> we effectively imbue our variable with all of
|
||
the data fields provided by the variant that it turned out to be. So for
|
||
example above if we ended up in the <code>MethodCall</code> case then we get to use
|
||
<code>expr.receiver</code>, <code>expr.args</code> etc; if we ended up in the <code>If</code> case we get
|
||
to use <code>expr.cond</code>, <code>expr.then_branch</code>, <code>expr.else_branch</code>.</p>
|
||
<p>This approach avoids repeating the variant names twice on every line.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Repetitive; recommend not doing this.
|
||
</span><span class="kw">match </span>expr {
|
||
Expr::MethodCall(ExprMethodCall { method, args, .. }) => {</code></pre></div>
|
||
<p>In general, the name to which a syntax tree enum variant is bound should
|
||
be a suitable name for the complete syntax tree enum type.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// Binding is called `base` which is the name I would use if I were
|
||
// assigning `*discriminant.base` without an `if let`.
|
||
</span><span class="kw">if let </span>Expr::Tuple(base) = <span class="kw-2">*</span>discriminant.base {</code></pre></div>
|
||
<p>A sign that you may not be choosing the right variable names is if you
|
||
see names getting repeated in your code, like accessing
|
||
<code>receiver.receiver</code> or <code>pat.pat</code> or <code>cond.cond</code>.</p>
|
||
</div></details><h2 id="variants" class="variants section-header">Variants (Non-exhaustive)<a href="#variants" class="anchor">§</a></h2><details class="toggle non-exhaustive"><summary class="hideme"><span>This enum is marked as non-exhaustive</span></summary><div class="docblock">Non-exhaustive enums could have additional variants added in future. Therefore, when matching against variants of non-exhaustive enums, an extra wildcard arm must be added to account for any future variants.</div></details><div class="variants"><section id="variant.Array" class="variant"><a href="#variant.Array" class="anchor">§</a><h3 class="code-header">Array(<a class="struct" href="struct.ExprArray.html" title="struct syn::ExprArray">ExprArray</a>)</h3></section><div class="docblock"><p>A slice literal expression: <code>[a, b, c, d]</code>.</p>
|
||
</div><section id="variant.Assign" class="variant"><a href="#variant.Assign" class="anchor">§</a><h3 class="code-header">Assign(<a class="struct" href="struct.ExprAssign.html" title="struct syn::ExprAssign">ExprAssign</a>)</h3></section><div class="docblock"><p>An assignment expression: <code>a = compute()</code>.</p>
|
||
</div><section id="variant.Async" class="variant"><a href="#variant.Async" class="anchor">§</a><h3 class="code-header">Async(<a class="struct" href="struct.ExprAsync.html" title="struct syn::ExprAsync">ExprAsync</a>)</h3></section><div class="docblock"><p>An async block: <code>async { ... }</code>.</p>
|
||
</div><section id="variant.Await" class="variant"><a href="#variant.Await" class="anchor">§</a><h3 class="code-header">Await(<a class="struct" href="struct.ExprAwait.html" title="struct syn::ExprAwait">ExprAwait</a>)</h3></section><div class="docblock"><p>An await expression: <code>fut.await</code>.</p>
|
||
</div><section id="variant.Binary" class="variant"><a href="#variant.Binary" class="anchor">§</a><h3 class="code-header">Binary(<a class="struct" href="struct.ExprBinary.html" title="struct syn::ExprBinary">ExprBinary</a>)</h3></section><div class="docblock"><p>A binary operation: <code>a + b</code>, <code>a += b</code>.</p>
|
||
</div><section id="variant.Block" class="variant"><a href="#variant.Block" class="anchor">§</a><h3 class="code-header">Block(<a class="struct" href="struct.ExprBlock.html" title="struct syn::ExprBlock">ExprBlock</a>)</h3></section><div class="docblock"><p>A blocked scope: <code>{ ... }</code>.</p>
|
||
</div><section id="variant.Break" class="variant"><a href="#variant.Break" class="anchor">§</a><h3 class="code-header">Break(<a class="struct" href="struct.ExprBreak.html" title="struct syn::ExprBreak">ExprBreak</a>)</h3></section><div class="docblock"><p>A <code>break</code>, with an optional label to break and an optional
|
||
expression.</p>
|
||
</div><section id="variant.Call" class="variant"><a href="#variant.Call" class="anchor">§</a><h3 class="code-header">Call(<a class="struct" href="struct.ExprCall.html" title="struct syn::ExprCall">ExprCall</a>)</h3></section><div class="docblock"><p>A function call expression: <code>invoke(a, b)</code>.</p>
|
||
</div><section id="variant.Cast" class="variant"><a href="#variant.Cast" class="anchor">§</a><h3 class="code-header">Cast(<a class="struct" href="struct.ExprCast.html" title="struct syn::ExprCast">ExprCast</a>)</h3></section><div class="docblock"><p>A cast expression: <code>foo as f64</code>.</p>
|
||
</div><section id="variant.Closure" class="variant"><a href="#variant.Closure" class="anchor">§</a><h3 class="code-header">Closure(<a class="struct" href="struct.ExprClosure.html" title="struct syn::ExprClosure">ExprClosure</a>)</h3></section><div class="docblock"><p>A closure expression: <code>|a, b| a + b</code>.</p>
|
||
</div><section id="variant.Const" class="variant"><a href="#variant.Const" class="anchor">§</a><h3 class="code-header">Const(<a class="struct" href="struct.ExprConst.html" title="struct syn::ExprConst">ExprConst</a>)</h3></section><div class="docblock"><p>A const block: <code>const { ... }</code>.</p>
|
||
</div><section id="variant.Continue" class="variant"><a href="#variant.Continue" class="anchor">§</a><h3 class="code-header">Continue(<a class="struct" href="struct.ExprContinue.html" title="struct syn::ExprContinue">ExprContinue</a>)</h3></section><div class="docblock"><p>A <code>continue</code>, with an optional label.</p>
|
||
</div><section id="variant.Field" class="variant"><a href="#variant.Field" class="anchor">§</a><h3 class="code-header">Field(<a class="struct" href="struct.ExprField.html" title="struct syn::ExprField">ExprField</a>)</h3></section><div class="docblock"><p>Access of a named struct field (<code>obj.k</code>) or unnamed tuple struct
|
||
field (<code>obj.0</code>).</p>
|
||
</div><section id="variant.ForLoop" class="variant"><a href="#variant.ForLoop" class="anchor">§</a><h3 class="code-header">ForLoop(<a class="struct" href="struct.ExprForLoop.html" title="struct syn::ExprForLoop">ExprForLoop</a>)</h3></section><div class="docblock"><p>A for loop: <code>for pat in expr { ... }</code>.</p>
|
||
</div><section id="variant.Group" class="variant"><a href="#variant.Group" class="anchor">§</a><h3 class="code-header">Group(<a class="struct" href="struct.ExprGroup.html" title="struct syn::ExprGroup">ExprGroup</a>)</h3></section><div class="docblock"><p>An expression contained within invisible delimiters.</p>
|
||
<p>This variant is important for faithfully representing the precedence
|
||
of expressions and is related to <code>None</code>-delimited spans in a
|
||
<code>TokenStream</code>.</p>
|
||
</div><section id="variant.If" class="variant"><a href="#variant.If" class="anchor">§</a><h3 class="code-header">If(<a class="struct" href="struct.ExprIf.html" title="struct syn::ExprIf">ExprIf</a>)</h3></section><div class="docblock"><p>An <code>if</code> expression with an optional <code>else</code> block: <code>if expr { ... } else { ... }</code>.</p>
|
||
<p>The <code>else</code> branch expression may only be an <code>If</code> or <code>Block</code>
|
||
expression, not any of the other types of expression.</p>
|
||
</div><section id="variant.Index" class="variant"><a href="#variant.Index" class="anchor">§</a><h3 class="code-header">Index(<a class="struct" href="struct.ExprIndex.html" title="struct syn::ExprIndex">ExprIndex</a>)</h3></section><div class="docblock"><p>A square bracketed indexing expression: <code>vector[2]</code>.</p>
|
||
</div><section id="variant.Infer" class="variant"><a href="#variant.Infer" class="anchor">§</a><h3 class="code-header">Infer(<a class="struct" href="struct.ExprInfer.html" title="struct syn::ExprInfer">ExprInfer</a>)</h3></section><div class="docblock"><p>The inferred value of a const generic argument, denoted <code>_</code>.</p>
|
||
</div><section id="variant.Let" class="variant"><a href="#variant.Let" class="anchor">§</a><h3 class="code-header">Let(<a class="struct" href="struct.ExprLet.html" title="struct syn::ExprLet">ExprLet</a>)</h3></section><div class="docblock"><p>A <code>let</code> guard: <code>let Some(x) = opt</code>.</p>
|
||
</div><section id="variant.Lit" class="variant"><a href="#variant.Lit" class="anchor">§</a><h3 class="code-header">Lit(<a class="struct" href="struct.ExprLit.html" title="struct syn::ExprLit">ExprLit</a>)</h3></section><div class="docblock"><p>A literal in place of an expression: <code>1</code>, <code>"foo"</code>.</p>
|
||
</div><section id="variant.Loop" class="variant"><a href="#variant.Loop" class="anchor">§</a><h3 class="code-header">Loop(<a class="struct" href="struct.ExprLoop.html" title="struct syn::ExprLoop">ExprLoop</a>)</h3></section><div class="docblock"><p>Conditionless loop: <code>loop { ... }</code>.</p>
|
||
</div><section id="variant.Macro" class="variant"><a href="#variant.Macro" class="anchor">§</a><h3 class="code-header">Macro(<a class="struct" href="struct.ExprMacro.html" title="struct syn::ExprMacro">ExprMacro</a>)</h3></section><div class="docblock"><p>A macro invocation expression: <code>format!("{}", q)</code>.</p>
|
||
</div><section id="variant.Match" class="variant"><a href="#variant.Match" class="anchor">§</a><h3 class="code-header">Match(<a class="struct" href="struct.ExprMatch.html" title="struct syn::ExprMatch">ExprMatch</a>)</h3></section><div class="docblock"><p>A <code>match</code> expression: <code>match n { Some(n) => {}, None => {} }</code>.</p>
|
||
</div><section id="variant.MethodCall" class="variant"><a href="#variant.MethodCall" class="anchor">§</a><h3 class="code-header">MethodCall(<a class="struct" href="struct.ExprMethodCall.html" title="struct syn::ExprMethodCall">ExprMethodCall</a>)</h3></section><div class="docblock"><p>A method call expression: <code>x.foo::<T>(a, b)</code>.</p>
|
||
</div><section id="variant.Paren" class="variant"><a href="#variant.Paren" class="anchor">§</a><h3 class="code-header">Paren(<a class="struct" href="struct.ExprParen.html" title="struct syn::ExprParen">ExprParen</a>)</h3></section><div class="docblock"><p>A parenthesized expression: <code>(a + b)</code>.</p>
|
||
</div><section id="variant.Path" class="variant"><a href="#variant.Path" class="anchor">§</a><h3 class="code-header">Path(<a class="struct" href="struct.ExprPath.html" title="struct syn::ExprPath">ExprPath</a>)</h3></section><div class="docblock"><p>A path like <code>std::mem::replace</code> possibly containing generic
|
||
parameters and a qualified self-type.</p>
|
||
<p>A plain identifier like <code>x</code> is a path of length 1.</p>
|
||
</div><section id="variant.Range" class="variant"><a href="#variant.Range" class="anchor">§</a><h3 class="code-header">Range(<a class="struct" href="struct.ExprRange.html" title="struct syn::ExprRange">ExprRange</a>)</h3></section><div class="docblock"><p>A range expression: <code>1..2</code>, <code>1..</code>, <code>..2</code>, <code>1..=2</code>, <code>..=2</code>.</p>
|
||
</div><section id="variant.Reference" class="variant"><a href="#variant.Reference" class="anchor">§</a><h3 class="code-header">Reference(<a class="struct" href="struct.ExprReference.html" title="struct syn::ExprReference">ExprReference</a>)</h3></section><div class="docblock"><p>A referencing operation: <code>&a</code> or <code>&mut a</code>.</p>
|
||
</div><section id="variant.Repeat" class="variant"><a href="#variant.Repeat" class="anchor">§</a><h3 class="code-header">Repeat(<a class="struct" href="struct.ExprRepeat.html" title="struct syn::ExprRepeat">ExprRepeat</a>)</h3></section><div class="docblock"><p>An array literal constructed from one repeated element: <code>[0u8; N]</code>.</p>
|
||
</div><section id="variant.Return" class="variant"><a href="#variant.Return" class="anchor">§</a><h3 class="code-header">Return(<a class="struct" href="struct.ExprReturn.html" title="struct syn::ExprReturn">ExprReturn</a>)</h3></section><div class="docblock"><p>A <code>return</code>, with an optional value to be returned.</p>
|
||
</div><section id="variant.Struct" class="variant"><a href="#variant.Struct" class="anchor">§</a><h3 class="code-header">Struct(<a class="struct" href="struct.ExprStruct.html" title="struct syn::ExprStruct">ExprStruct</a>)</h3></section><div class="docblock"><p>A struct literal expression: <code>Point { x: 1, y: 1 }</code>.</p>
|
||
<p>The <code>rest</code> provides the value of the remaining fields as in <code>S { a: 1, b: 1, ..rest }</code>.</p>
|
||
</div><section id="variant.Try" class="variant"><a href="#variant.Try" class="anchor">§</a><h3 class="code-header">Try(<a class="struct" href="struct.ExprTry.html" title="struct syn::ExprTry">ExprTry</a>)</h3></section><div class="docblock"><p>A try-expression: <code>expr?</code>.</p>
|
||
</div><section id="variant.TryBlock" class="variant"><a href="#variant.TryBlock" class="anchor">§</a><h3 class="code-header">TryBlock(<a class="struct" href="struct.ExprTryBlock.html" title="struct syn::ExprTryBlock">ExprTryBlock</a>)</h3></section><div class="docblock"><p>A try block: <code>try { ... }</code>.</p>
|
||
</div><section id="variant.Tuple" class="variant"><a href="#variant.Tuple" class="anchor">§</a><h3 class="code-header">Tuple(<a class="struct" href="struct.ExprTuple.html" title="struct syn::ExprTuple">ExprTuple</a>)</h3></section><div class="docblock"><p>A tuple expression: <code>(a, b, c, d)</code>.</p>
|
||
</div><section id="variant.Unary" class="variant"><a href="#variant.Unary" class="anchor">§</a><h3 class="code-header">Unary(<a class="struct" href="struct.ExprUnary.html" title="struct syn::ExprUnary">ExprUnary</a>)</h3></section><div class="docblock"><p>A unary operation: <code>!x</code>, <code>*x</code>.</p>
|
||
</div><section id="variant.Unsafe" class="variant"><a href="#variant.Unsafe" class="anchor">§</a><h3 class="code-header">Unsafe(<a class="struct" href="struct.ExprUnsafe.html" title="struct syn::ExprUnsafe">ExprUnsafe</a>)</h3></section><div class="docblock"><p>An unsafe block: <code>unsafe { ... }</code>.</p>
|
||
</div><section id="variant.Verbatim" class="variant"><a href="#variant.Verbatim" class="anchor">§</a><h3 class="code-header">Verbatim(<a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a>)</h3></section><div class="docblock"><p>Tokens in expression position not interpreted by Syn.</p>
|
||
</div><section id="variant.While" class="variant"><a href="#variant.While" class="anchor">§</a><h3 class="code-header">While(<a class="struct" href="struct.ExprWhile.html" title="struct syn::ExprWhile">ExprWhile</a>)</h3></section><div class="docblock"><p>A while loop: <code>while expr { ... }</code>.</p>
|
||
</div><section id="variant.Yield" class="variant"><a href="#variant.Yield" class="anchor">§</a><h3 class="code-header">Yield(<a class="struct" href="struct.ExprYield.html" title="struct syn::ExprYield">ExprYield</a>)</h3></section><div class="docblock"><p>A yield expression: <code>yield expr</code>.</p>
|
||
</div></div><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#1102-1188">source</a><a href="#impl-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.parse_without_eager_brace" class="method"><a class="src rightside" href="../src/syn/expr.rs.html#1185-1187">source</a><h4 class="code-header">pub fn <a href="#method.parse_without_eager_brace" class="fn">parse_without_eager_brace</a>(input: <a class="type" href="parse/type.ParseStream.html" title="type syn::parse::ParseStream">ParseStream</a><'_>) -> <a class="type" href="parse/type.Result.html" title="type syn::parse::Result">Result</a><<a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a>></h4></section></summary><div class="docblock"><p>An alternative to the primary <code>Expr::parse</code> parser (from the
|
||
<a href="parse/trait.Parse.html" title="trait syn::parse::Parse"><code>Parse</code></a> trait) for ambiguous syntactic positions in which a
|
||
trailing brace should not be taken as part of the expression.</p>
|
||
<p>Rust grammar has an ambiguity where braces sometimes turn a path
|
||
expression into a struct initialization and sometimes do not. In the
|
||
following code, the expression <code>S {}</code> is one expression. Presumably
|
||
there is an empty struct <code>struct S {}</code> defined somewhere which it is
|
||
instantiating.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">let _ </span>= <span class="kw-2">*</span>S {};
|
||
|
||
<span class="comment">// parsed by rustc as: `*(S {})`</span></code></pre></div>
|
||
<p>We would want to parse the above using <code>Expr::parse</code> after the <code>=</code>
|
||
token.</p>
|
||
<p>But in the following, <code>S {}</code> is <em>not</em> a struct init expression.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">if </span><span class="kw-2">*</span>S {} {}
|
||
|
||
<span class="comment">// parsed by rustc as:
|
||
//
|
||
// if (*S) {
|
||
// /* empty block */
|
||
// }
|
||
// {
|
||
// /* another empty block */
|
||
// }</span></code></pre></div>
|
||
<p>For that reason we would want to parse if-conditions using
|
||
<code>Expr::parse_without_eager_brace</code> after the <code>if</code> token. Same for
|
||
similar syntactic positions such as the condition expr after a
|
||
<code>while</code> token or the expr at the top of a <code>match</code>.</p>
|
||
<p>The Rust grammar’s choices around which way this ambiguity is
|
||
resolved at various syntactic positions is fairly arbitrary. Really
|
||
either parse behavior could work in most positions, and language
|
||
designers just decide each case based on which is more likely to be
|
||
what the programmer had in mind most of the time.</p>
|
||
|
||
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">if return </span>S {} {}
|
||
|
||
<span class="comment">// parsed by rustc as:
|
||
//
|
||
// if (return (S {})) {
|
||
// }
|
||
//
|
||
// but could equally well have been this other arbitrary choice:
|
||
//
|
||
// if (return S) {
|
||
// }
|
||
// {}</span></code></pre></div>
|
||
<p>Note the grammar ambiguity on trailing braces is distinct from
|
||
precedence and is not captured by assigning a precedence level to
|
||
the braced struct init expr in relation to other operators. This can
|
||
be illustrated by <code>return 0..S {}</code> vs <code>match 0..S {}</code>. The former
|
||
parses as <code>return (0..(S {}))</code> implying tighter precedence for
|
||
struct init than <code>..</code>, while the latter parses as <code>match (0..S) {}</code>
|
||
implying tighter precedence for <code>..</code> than struct init, a
|
||
contradiction.</p>
|
||
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-Expr" class="impl"><a class="src rightside" href="../src/syn/gen/clone.rs.html#227-297">source</a><a href="#impl-Clone-for-Expr" 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="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</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/syn/gen/clone.rs.html#228-296">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>(&self) -> Self</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>(&mut self, source: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&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-Expr" class="impl"><a class="src rightside" href="../src/syn/gen/debug.rs.html#397-472">source</a><a href="#impl-Debug-for-Expr" 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="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</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/syn/gen/debug.rs.html#398-471">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.Debug.html#tymethod.fmt" class="fn">fmt</a>(&self, formatter: &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><'_>) -> <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-From%3CExprArray%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprArray%3E-for-Expr" 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><<a class="struct" href="struct.ExprArray.html" title="struct syn::ExprArray">ExprArray</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-29" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-29" 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.ExprArray.html" title="struct syn::ExprArray">ExprArray</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprAssign%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprAssign%3E-for-Expr" 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><<a class="struct" href="struct.ExprAssign.html" title="struct syn::ExprAssign">ExprAssign</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-37" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-37" 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.ExprAssign.html" title="struct syn::ExprAssign">ExprAssign</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprAsync%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprAsync%3E-for-Expr" 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><<a class="struct" href="struct.ExprAsync.html" title="struct syn::ExprAsync">ExprAsync</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</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/syn/expr.rs.html#29-258">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.ExprAsync.html" title="struct syn::ExprAsync">ExprAsync</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprAwait%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprAwait%3E-for-Expr" 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><<a class="struct" href="struct.ExprAwait.html" title="struct syn::ExprAwait">ExprAwait</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-10" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-10" 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.ExprAwait.html" title="struct syn::ExprAwait">ExprAwait</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprBinary%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprBinary%3E-for-Expr" 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><<a class="struct" href="struct.ExprBinary.html" title="struct syn::ExprBinary">ExprBinary</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-17" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-17" 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.ExprBinary.html" title="struct syn::ExprBinary">ExprBinary</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprBlock%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprBlock%3E-for-Expr" 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><<a class="struct" href="struct.ExprBlock.html" title="struct syn::ExprBlock">ExprBlock</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-31" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-31" 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.ExprBlock.html" title="struct syn::ExprBlock">ExprBlock</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprBreak%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprBreak%3E-for-Expr" 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><<a class="struct" href="struct.ExprBreak.html" title="struct syn::ExprBreak">ExprBreak</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-7" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-7" 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.ExprBreak.html" title="struct syn::ExprBreak">ExprBreak</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprCall%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprCall%3E-for-Expr" 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><<a class="struct" href="struct.ExprCall.html" title="struct syn::ExprCall">ExprCall</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-35" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-35" 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.ExprCall.html" title="struct syn::ExprCall">ExprCall</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprCast%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprCast%3E-for-Expr" 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><<a class="struct" href="struct.ExprCast.html" title="struct syn::ExprCast">ExprCast</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-22" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-22" 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.ExprCast.html" title="struct syn::ExprCast">ExprCast</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprClosure%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprClosure%3E-for-Expr" 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><<a class="struct" href="struct.ExprClosure.html" title="struct syn::ExprClosure">ExprClosure</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-12" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-12" 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.ExprClosure.html" title="struct syn::ExprClosure">ExprClosure</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprConst%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprConst%3E-for-Expr" 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><<a class="struct" href="struct.ExprConst.html" title="struct syn::ExprConst">ExprConst</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-24" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-24" 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.ExprConst.html" title="struct syn::ExprConst">ExprConst</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprContinue%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprContinue%3E-for-Expr" 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><<a class="struct" href="struct.ExprContinue.html" title="struct syn::ExprContinue">ExprContinue</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-5" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-5" 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.ExprContinue.html" title="struct syn::ExprContinue">ExprContinue</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprField%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprField%3E-for-Expr" 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><<a class="struct" href="struct.ExprField.html" title="struct syn::ExprField">ExprField</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-18" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-18" 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.ExprField.html" title="struct syn::ExprField">ExprField</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprForLoop%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprForLoop%3E-for-Expr" 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><<a class="struct" href="struct.ExprForLoop.html" title="struct syn::ExprForLoop">ExprForLoop</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-25" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-25" 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.ExprForLoop.html" title="struct syn::ExprForLoop">ExprForLoop</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprGroup%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprGroup%3E-for-Expr" 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><<a class="struct" href="struct.ExprGroup.html" title="struct syn::ExprGroup">ExprGroup</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-32" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-32" 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.ExprGroup.html" title="struct syn::ExprGroup">ExprGroup</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprIf%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprIf%3E-for-Expr" 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><<a class="struct" href="struct.ExprIf.html" title="struct syn::ExprIf">ExprIf</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-28" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-28" 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.ExprIf.html" title="struct syn::ExprIf">ExprIf</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprIndex%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprIndex%3E-for-Expr" 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><<a class="struct" href="struct.ExprIndex.html" title="struct syn::ExprIndex">ExprIndex</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-8" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-8" 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.ExprIndex.html" title="struct syn::ExprIndex">ExprIndex</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprInfer%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprInfer%3E-for-Expr" 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><<a class="struct" href="struct.ExprInfer.html" title="struct syn::ExprInfer">ExprInfer</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</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/syn/expr.rs.html#29-258">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="struct.ExprInfer.html" title="struct syn::ExprInfer">ExprInfer</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprLet%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprLet%3E-for-Expr" 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><<a class="struct" href="struct.ExprLet.html" title="struct syn::ExprLet">ExprLet</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-13" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-13" 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.ExprLet.html" title="struct syn::ExprLet">ExprLet</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprLit%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprLit%3E-for-Expr" 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><<a class="struct" href="struct.ExprLit.html" title="struct syn::ExprLit">ExprLit</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-33" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-33" 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.ExprLit.html" title="struct syn::ExprLit">ExprLit</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprLoop%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprLoop%3E-for-Expr" 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><<a class="struct" href="struct.ExprLoop.html" title="struct syn::ExprLoop">ExprLoop</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-6" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-6" 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.ExprLoop.html" title="struct syn::ExprLoop">ExprLoop</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprMacro%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprMacro%3E-for-Expr" 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><<a class="struct" href="struct.ExprMacro.html" title="struct syn::ExprMacro">ExprMacro</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-21" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-21" 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.ExprMacro.html" title="struct syn::ExprMacro">ExprMacro</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprMatch%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprMatch%3E-for-Expr" 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><<a class="struct" href="struct.ExprMatch.html" title="struct syn::ExprMatch">ExprMatch</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-14" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-14" 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.ExprMatch.html" title="struct syn::ExprMatch">ExprMatch</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprMethodCall%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprMethodCall%3E-for-Expr" 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><<a class="struct" href="struct.ExprMethodCall.html" title="struct syn::ExprMethodCall">ExprMethodCall</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-34" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-34" 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.ExprMethodCall.html" title="struct syn::ExprMethodCall">ExprMethodCall</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprParen%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprParen%3E-for-Expr" 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><<a class="struct" href="struct.ExprParen.html" title="struct syn::ExprParen">ExprParen</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-11" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-11" 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.ExprParen.html" title="struct syn::ExprParen">ExprParen</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprPath%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprPath%3E-for-Expr" 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><<a class="struct" href="struct.ExprPath.html" title="struct syn::ExprPath">ExprPath</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-36" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-36" 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.ExprPath.html" title="struct syn::ExprPath">ExprPath</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprRange%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprRange%3E-for-Expr" 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><<a class="struct" href="struct.ExprRange.html" title="struct syn::ExprRange">ExprRange</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-16" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-16" 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.ExprRange.html" title="struct syn::ExprRange">ExprRange</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprReference%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprReference%3E-for-Expr" 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><<a class="struct" href="struct.ExprReference.html" title="struct syn::ExprReference">ExprReference</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-26" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-26" 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.ExprReference.html" title="struct syn::ExprReference">ExprReference</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprRepeat%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprRepeat%3E-for-Expr" 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><<a class="struct" href="struct.ExprRepeat.html" title="struct syn::ExprRepeat">ExprRepeat</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-3" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-3" 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.ExprRepeat.html" title="struct syn::ExprRepeat">ExprRepeat</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprReturn%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprReturn%3E-for-Expr" 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><<a class="struct" href="struct.ExprReturn.html" title="struct syn::ExprReturn">ExprReturn</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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="../src/syn/expr.rs.html#29-258">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>(e: <a class="struct" href="struct.ExprReturn.html" title="struct syn::ExprReturn">ExprReturn</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprStruct%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprStruct%3E-for-Expr" 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><<a class="struct" href="struct.ExprStruct.html" title="struct syn::ExprStruct">ExprStruct</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-20" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-20" 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.ExprStruct.html" title="struct syn::ExprStruct">ExprStruct</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprTry%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprTry%3E-for-Expr" 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><<a class="struct" href="struct.ExprTry.html" title="struct syn::ExprTry">ExprTry</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-4" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-4" 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.ExprTry.html" title="struct syn::ExprTry">ExprTry</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprTryBlock%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprTryBlock%3E-for-Expr" 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><<a class="struct" href="struct.ExprTryBlock.html" title="struct syn::ExprTryBlock">ExprTryBlock</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-30" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-30" 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.ExprTryBlock.html" title="struct syn::ExprTryBlock">ExprTryBlock</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprTuple%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprTuple%3E-for-Expr" 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><<a class="struct" href="struct.ExprTuple.html" title="struct syn::ExprTuple">ExprTuple</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-27" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-27" 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.ExprTuple.html" title="struct syn::ExprTuple">ExprTuple</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprUnary%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprUnary%3E-for-Expr" 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><<a class="struct" href="struct.ExprUnary.html" title="struct syn::ExprUnary">ExprUnary</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-19" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-19" 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.ExprUnary.html" title="struct syn::ExprUnary">ExprUnary</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprUnsafe%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprUnsafe%3E-for-Expr" 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><<a class="struct" href="struct.ExprUnsafe.html" title="struct syn::ExprUnsafe">ExprUnsafe</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-23" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-23" 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.ExprUnsafe.html" title="struct syn::ExprUnsafe">ExprUnsafe</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprWhile%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprWhile%3E-for-Expr" 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><<a class="struct" href="struct.ExprWhile.html" title="struct syn::ExprWhile">ExprWhile</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-15" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-15" 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.ExprWhile.html" title="struct syn::ExprWhile">ExprWhile</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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%3CExprYield%3E-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-From%3CExprYield%3E-for-Expr" 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><<a class="struct" href="struct.ExprYield.html" title="struct syn::ExprYield">ExprYield</a>> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-9" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.from-9" 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.ExprYield.html" title="struct syn::ExprYield">ExprYield</a>) -> <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></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-Hash-for-Expr" class="impl"><a class="src rightside" href="../src/syn/gen/hash.rs.html#329-519">source</a><a href="#impl-Hash-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/hash/trait.Hash.html" title="trait core::hash::Hash">Hash</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.hash" class="method trait-impl"><a class="src rightside" href="../src/syn/gen/hash.rs.html#330-518">source</a><a href="#method.hash" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/hash/trait.Hash.html#tymethod.hash" class="fn">hash</a><H>(&self, state: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&mut H</a>)<div class="where">where
|
||
H: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,</div></h4></section></summary><div class='docblock'>Feeds this value into the given <a href="https://doc.rust-lang.org/1.76.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.76.0/core/hash/trait.Hash.html#tymethod.hash">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.hash_slice" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.3.0">1.3.0</span> · <a class="src" href="https://doc.rust-lang.org/1.76.0/src/core/hash/mod.rs.html#238-240">source</a></span><a href="#method.hash_slice" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/hash/trait.Hash.html#method.hash_slice" class="fn">hash_slice</a><H>(data: &<a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.slice.html">[Self]</a>, state: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&mut H</a>)<div class="where">where
|
||
H: <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher">Hasher</a>,
|
||
Self: <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></h4></section></summary><div class='docblock'>Feeds a slice of this type into the given <a href="https://doc.rust-lang.org/1.76.0/core/hash/trait.Hasher.html" title="trait core::hash::Hasher"><code>Hasher</code></a>. <a href="https://doc.rust-lang.org/1.76.0/core/hash/trait.Hash.html#method.hash_slice">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Parse-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#1092-1100">source</a><a href="#impl-Parse-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="parse/trait.Parse.html" title="trait syn::parse::Parse">Parse</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><section id="method.parse" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#1093-1099">source</a><a href="#method.parse" class="anchor">§</a><h4 class="code-header">fn <a href="parse/trait.Parse.html#tymethod.parse" class="fn">parse</a>(input: <a class="type" href="parse/type.ParseStream.html" title="type syn::parse::ParseStream">ParseStream</a><'_>) -> <a class="type" href="parse/type.Result.html" title="type syn::parse::Result">Result</a><Self></h4></section></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-PartialEq-for-Expr" class="impl"><a class="src rightside" href="../src/syn/gen/eq.rs.html#246-329">source</a><a href="#impl-PartialEq-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.eq" class="method trait-impl"><a class="src rightside" href="../src/syn/gen/eq.rs.html#247-328">source</a><a href="#method.eq" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/cmp/trait.PartialEq.html#tymethod.eq" class="fn">eq</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&Self</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used
|
||
by <code>==</code>.</div></details><details class="toggle method-toggle" open><summary><section id="method.ne" 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/cmp.rs.html#242">source</a></span><a href="#method.ne" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.76.0/core/cmp/trait.PartialEq.html#method.ne" class="fn">ne</a>(&self, other: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&Rhs</a>) -> <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>This method tests for <code>!=</code>. The default implementation is almost always
|
||
sufficient, and should not be overridden without very good reason.</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-ToTokens-for-Expr" class="impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#impl-ToTokens-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../quote/to_tokens/trait.ToTokens.html" title="trait quote::to_tokens::ToTokens">ToTokens</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.to_tokens" class="method trait-impl"><a class="src rightside" href="../src/syn/expr.rs.html#29-258">source</a><a href="#method.to_tokens" class="anchor">§</a><h4 class="code-header">fn <a href="../quote/to_tokens/trait.ToTokens.html#tymethod.to_tokens" class="fn">to_tokens</a>(&self, tokens: &mut <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a>)</h4></section></summary><div class='docblock'>Write <code>self</code> to the given <code>TokenStream</code>. <a href="../quote/to_tokens/trait.ToTokens.html#tymethod.to_tokens">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.to_token_stream" class="method trait-impl"><a class="src rightside" href="../src/quote/to_tokens.rs.html#59">source</a><a href="#method.to_token_stream" class="anchor">§</a><h4 class="code-header">fn <a href="../quote/to_tokens/trait.ToTokens.html#method.to_token_stream" class="fn">to_token_stream</a>(&self) -> <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a></h4></section></summary><div class='docblock'>Convert <code>self</code> directly into a <code>TokenStream</code> object. <a href="../quote/to_tokens/trait.ToTokens.html#method.to_token_stream">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.into_token_stream" class="method trait-impl"><a class="src rightside" href="../src/quote/to_tokens.rs.html#69-71">source</a><a href="#method.into_token_stream" class="anchor">§</a><h4 class="code-header">fn <a href="../quote/to_tokens/trait.ToTokens.html#method.into_token_stream" class="fn">into_token_stream</a>(self) -> <a class="struct" href="../proc_macro2/struct.TokenStream.html" title="struct proc_macro2::TokenStream">TokenStream</a><div class="where">where
|
||
Self: <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></h4></section></summary><div class='docblock'>Convert <code>self</code> directly into a <code>TokenStream</code> object. <a href="../quote/to_tokens/trait.ToTokens.html#method.into_token_stream">Read more</a></div></details></div></details><section id="impl-Eq-for-Expr" class="impl"><a class="src rightside" href="../src/syn/gen/eq.rs.html#243">source</a><a href="#impl-Eq-for-Expr" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-Expr" class="impl"><a href="#impl-RefUnwindSafe-for-Expr" 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="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section><section id="impl-Send-for-Expr" class="impl"><a href="#impl-Send-for-Expr" 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="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section><section id="impl-Sync-for-Expr" class="impl"><a href="#impl-Sync-for-Expr" 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="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section><section id="impl-Unpin-for-Expr" class="impl"><a href="#impl-Unpin-for-Expr" 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="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</a></h3></section><section id="impl-UnwindSafe-for-Expr" class="impl"><a href="#impl-UnwindSafe-for-Expr" 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="enum" href="enum.Expr.html" title="enum syn::Expr">Expr</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<T> <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>(&self) -> <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<T> <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a><T> 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>(&self) -> <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&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<T> <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a><T> 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>(&mut self) -> <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&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<T> <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/convert/trait.From.html" title="trait core::convert::From">From</a><T> for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from-38" 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-38" 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) -> 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<T, 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><U> 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><T>,</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) -> 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><T> for U</code> chooses to do.</p>
|
||
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Spanned-for-T" class="impl"><a class="src rightside" href="../src/syn/spanned.rs.html#104-108">source</a><a href="#impl-Spanned-for-T" class="anchor">§</a><h3 class="code-header">impl<T> <a class="trait" href="spanned/trait.Spanned.html" title="trait syn::spanned::Spanned">Spanned</a> for T<div class="where">where
|
||
T: Spanned + ?<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.span" class="method trait-impl"><a class="src rightside" href="../src/syn/spanned.rs.html#105-107">source</a><a href="#method.span" class="anchor">§</a><h4 class="code-header">fn <a href="spanned/trait.Spanned.html#tymethod.span" class="fn">span</a>(&self) -> <a class="struct" href="../proc_macro2/struct.Span.html" title="struct proc_macro2::Span">Span</a></h4></section></summary><div class='docblock'>Returns a <code>Span</code> covering the complete contents of this syntax tree
|
||
node, or <a href="../proc_macro2/struct.Span.html#method.call_site" title="associated function proc_macro2::Span::call_site"><code>Span::call_site()</code></a> if this node is empty.</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<T> <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>(&self) -> 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>(&self, target: <a class="primitive" href="https://doc.rust-lang.org/1.76.0/std/primitive.reference.html">&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-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<T, 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><U> 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><T>,</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.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) -> <a class="enum" href="https://doc.rust-lang.org/1.76.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><T, <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><U>>::<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'>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<T, U> <a class="trait" href="https://doc.rust-lang.org/1.76.0/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a><U> 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><T>,</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.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = <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><T>>::<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) -> <a class="enum" href="https://doc.rust-lang.org/1.76.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a><U, <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><T>>::<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'>Performs the conversion.</div></details></div></details></div></section></div></main></body></html> |