blob: b998ee92533b06d3c8f7f6085a2832aaa06e7919 [file] [log] [blame]
<!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="Syntax tree traversal to walk a shared borrow of a syntax tree."><meta name="keywords" content="rust, rustlang, rust-lang, visit"><title>syn::visit - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../../normalize.css"><link rel="stylesheet" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../../ayu.css" disabled><link rel="stylesheet" href="../../dark.css" disabled><link rel="stylesheet" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="../../main.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle">&#9776;</button><a class="sidebar-logo" href="../../syn/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../syn/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">Module visit</a></h2><div class="sidebar-elems"><section><ul class="block"><li><a href="#traits">Traits</a></li><li><a href="#functions">Functions</a></li></ul></section></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Module <a href="../index.html">syn</a>::<wbr><a class="mod" href="#">visit</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/syn/gen/visit.rs.html#4-3501">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Syntax tree traversal to walk a shared borrow of a syntax tree.</p>
<p>Each method of the <a href="trait.Visit.html"><code>Visit</code></a> trait is a hook that can be overridden to
customize the behavior when visiting the corresponding type of node. By
default, every method recursively visits the substructure of the input
by invoking the right visitor method of each of its fields.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">pub trait </span>Visit&lt;<span class="lifetime">&#39;ast</span>&gt; {
<span class="comment">/* ... */
</span><span class="kw">fn </span>visit_expr_binary(<span class="kw-2">&amp;mut </span><span class="self">self</span>, node: <span class="kw-2">&amp;</span><span class="lifetime">&#39;ast </span>ExprBinary) {
visit_expr_binary(<span class="self">self</span>, node);
}
<span class="comment">/* ... */
</span>}
<span class="kw">pub fn </span>visit_expr_binary&lt;<span class="lifetime">&#39;ast</span>, V&gt;(v: <span class="kw-2">&amp;mut </span>V, node: <span class="kw-2">&amp;</span><span class="lifetime">&#39;ast </span>ExprBinary)
<span class="kw">where
</span>V: Visit&lt;<span class="lifetime">&#39;ast</span>&gt; + <span class="question-mark">?</span>Sized,
{
<span class="kw">for </span>attr <span class="kw">in </span><span class="kw-2">&amp;</span>node.attrs {
v.visit_attribute(attr);
}
v.visit_expr(<span class="kw-2">&amp;*</span>node.left);
v.visit_bin_op(<span class="kw-2">&amp;</span>node.op);
v.visit_expr(<span class="kw-2">&amp;*</span>node.right);
}
<span class="comment">/* ... */</span></code></pre></div>
<br>
<h2 id="example"><a href="#example">Example</a></h2>
<p>This visitor will print the name of every freestanding function in the
syntax tree, including nested functions.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="comment">// [dependencies]
// quote = &quot;1.0&quot;
// syn = { version = &quot;2.0&quot;, features = [&quot;full&quot;, &quot;visit&quot;] }
</span><span class="kw">use </span>quote::quote;
<span class="kw">use </span>syn::visit::{<span class="self">self</span>, Visit};
<span class="kw">use </span>syn::{File, ItemFn};
<span class="kw">struct </span>FnVisitor;
<span class="kw">impl</span>&lt;<span class="lifetime">&#39;ast</span>&gt; Visit&lt;<span class="lifetime">&#39;ast</span>&gt; <span class="kw">for </span>FnVisitor {
<span class="kw">fn </span>visit_item_fn(<span class="kw-2">&amp;mut </span><span class="self">self</span>, node: <span class="kw-2">&amp;</span><span class="lifetime">&#39;ast </span>ItemFn) {
<span class="macro">println!</span>(<span class="string">&quot;Function with name={}&quot;</span>, node.sig.ident);
<span class="comment">// Delegate to the default impl to visit any nested functions.
</span>visit::visit_item_fn(<span class="self">self</span>, node);
}
}
<span class="kw">fn </span>main() {
<span class="kw">let </span>code = <span class="macro">quote! </span>{
<span class="kw">pub fn </span>f() {
<span class="kw">fn </span>g() {}
}
};
<span class="kw">let </span>syntax_tree: File = syn::parse2(code).unwrap();
FnVisitor.visit_file(<span class="kw-2">&amp;</span>syntax_tree);
}</code></pre></div>
<p>The <code>'ast</code> lifetime on the input references means that the syntax tree
outlives the complete recursive visit call, so the visitor is allowed to
hold on to references into the syntax tree.</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>quote::quote;
<span class="kw">use </span>syn::visit::{<span class="self">self</span>, Visit};
<span class="kw">use </span>syn::{File, ItemFn};
<span class="kw">struct </span>FnVisitor&lt;<span class="lifetime">&#39;ast</span>&gt; {
functions: Vec&lt;<span class="kw-2">&amp;</span><span class="lifetime">&#39;ast </span>ItemFn&gt;,
}
<span class="kw">impl</span>&lt;<span class="lifetime">&#39;ast</span>&gt; Visit&lt;<span class="lifetime">&#39;ast</span>&gt; <span class="kw">for </span>FnVisitor&lt;<span class="lifetime">&#39;ast</span>&gt; {
<span class="kw">fn </span>visit_item_fn(<span class="kw-2">&amp;mut </span><span class="self">self</span>, node: <span class="kw-2">&amp;</span><span class="lifetime">&#39;ast </span>ItemFn) {
<span class="self">self</span>.functions.push(node);
visit::visit_item_fn(<span class="self">self</span>, node);
}
}
<span class="kw">fn </span>main() {
<span class="kw">let </span>code = <span class="macro">quote! </span>{
<span class="kw">pub fn </span>f() {
<span class="kw">fn </span>g() {}
}
};
<span class="kw">let </span>syntax_tree: File = syn::parse2(code).unwrap();
<span class="kw">let </span><span class="kw-2">mut </span>visitor = FnVisitor { functions: Vec::new() };
visitor.visit_file(<span class="kw-2">&amp;</span>syntax_tree);
<span class="kw">for </span>f <span class="kw">in </span>visitor.functions {
<span class="macro">println!</span>(<span class="string">&quot;Function with name={}&quot;</span>, f.sig.ident);
}
}</code></pre></div>
</div></details><h2 id="traits" class="small-section-header"><a href="#traits">Traits</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="trait" href="trait.Visit.html" title="syn::visit::Visit trait">Visit</a></div><div class="item-right docblock-short">Syntax tree traversal to walk a shared borrow of a syntax tree.</div></div></div><h2 id="functions" class="small-section-header"><a href="#functions">Functions</a></h2><div class="item-table"><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_abi.html" title="syn::visit::visit_abi fn">visit_abi</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_angle_bracketed_generic_arguments.html" title="syn::visit::visit_angle_bracketed_generic_arguments fn">visit_angle_bracketed_generic_arguments</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_arm.html" title="syn::visit::visit_arm fn">visit_arm</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_assoc_const.html" title="syn::visit::visit_assoc_const fn">visit_assoc_const</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_assoc_type.html" title="syn::visit::visit_assoc_type fn">visit_assoc_type</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_attr_style.html" title="syn::visit::visit_attr_style fn">visit_attr_style</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_attribute.html" title="syn::visit::visit_attribute fn">visit_attribute</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_bare_fn_arg.html" title="syn::visit::visit_bare_fn_arg fn">visit_bare_fn_arg</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_bare_variadic.html" title="syn::visit::visit_bare_variadic fn">visit_bare_variadic</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_bin_op.html" title="syn::visit::visit_bin_op fn">visit_bin_op</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_block.html" title="syn::visit::visit_block fn">visit_block</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_bound_lifetimes.html" title="syn::visit::visit_bound_lifetimes fn">visit_bound_lifetimes</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_const_param.html" title="syn::visit::visit_const_param fn">visit_const_param</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_constraint.html" title="syn::visit::visit_constraint fn">visit_constraint</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_data.html" title="syn::visit::visit_data fn">visit_data</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_data_enum.html" title="syn::visit::visit_data_enum fn">visit_data_enum</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_data_struct.html" title="syn::visit::visit_data_struct fn">visit_data_struct</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_data_union.html" title="syn::visit::visit_data_union fn">visit_data_union</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_derive_input.html" title="syn::visit::visit_derive_input fn">visit_derive_input</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr.html" title="syn::visit::visit_expr fn">visit_expr</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_array.html" title="syn::visit::visit_expr_array fn">visit_expr_array</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_assign.html" title="syn::visit::visit_expr_assign fn">visit_expr_assign</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_async.html" title="syn::visit::visit_expr_async fn">visit_expr_async</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_await.html" title="syn::visit::visit_expr_await fn">visit_expr_await</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_binary.html" title="syn::visit::visit_expr_binary fn">visit_expr_binary</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_block.html" title="syn::visit::visit_expr_block fn">visit_expr_block</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_break.html" title="syn::visit::visit_expr_break fn">visit_expr_break</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_call.html" title="syn::visit::visit_expr_call fn">visit_expr_call</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_cast.html" title="syn::visit::visit_expr_cast fn">visit_expr_cast</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_closure.html" title="syn::visit::visit_expr_closure fn">visit_expr_closure</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_const.html" title="syn::visit::visit_expr_const fn">visit_expr_const</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_continue.html" title="syn::visit::visit_expr_continue fn">visit_expr_continue</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_field.html" title="syn::visit::visit_expr_field fn">visit_expr_field</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_for_loop.html" title="syn::visit::visit_expr_for_loop fn">visit_expr_for_loop</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_group.html" title="syn::visit::visit_expr_group fn">visit_expr_group</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_if.html" title="syn::visit::visit_expr_if fn">visit_expr_if</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_index.html" title="syn::visit::visit_expr_index fn">visit_expr_index</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_infer.html" title="syn::visit::visit_expr_infer fn">visit_expr_infer</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_let.html" title="syn::visit::visit_expr_let fn">visit_expr_let</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_lit.html" title="syn::visit::visit_expr_lit fn">visit_expr_lit</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_loop.html" title="syn::visit::visit_expr_loop fn">visit_expr_loop</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_macro.html" title="syn::visit::visit_expr_macro fn">visit_expr_macro</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_match.html" title="syn::visit::visit_expr_match fn">visit_expr_match</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_method_call.html" title="syn::visit::visit_expr_method_call fn">visit_expr_method_call</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_paren.html" title="syn::visit::visit_expr_paren fn">visit_expr_paren</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_path.html" title="syn::visit::visit_expr_path fn">visit_expr_path</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_range.html" title="syn::visit::visit_expr_range fn">visit_expr_range</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_reference.html" title="syn::visit::visit_expr_reference fn">visit_expr_reference</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_repeat.html" title="syn::visit::visit_expr_repeat fn">visit_expr_repeat</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_return.html" title="syn::visit::visit_expr_return fn">visit_expr_return</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_struct.html" title="syn::visit::visit_expr_struct fn">visit_expr_struct</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_try.html" title="syn::visit::visit_expr_try fn">visit_expr_try</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_try_block.html" title="syn::visit::visit_expr_try_block fn">visit_expr_try_block</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_tuple.html" title="syn::visit::visit_expr_tuple fn">visit_expr_tuple</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_unary.html" title="syn::visit::visit_expr_unary fn">visit_expr_unary</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_unsafe.html" title="syn::visit::visit_expr_unsafe fn">visit_expr_unsafe</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_while.html" title="syn::visit::visit_expr_while fn">visit_expr_while</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_expr_yield.html" title="syn::visit::visit_expr_yield fn">visit_expr_yield</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_field.html" title="syn::visit::visit_field fn">visit_field</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_field_mutability.html" title="syn::visit::visit_field_mutability fn">visit_field_mutability</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_field_pat.html" title="syn::visit::visit_field_pat fn">visit_field_pat</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_field_value.html" title="syn::visit::visit_field_value fn">visit_field_value</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_fields.html" title="syn::visit::visit_fields fn">visit_fields</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_fields_named.html" title="syn::visit::visit_fields_named fn">visit_fields_named</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_fields_unnamed.html" title="syn::visit::visit_fields_unnamed fn">visit_fields_unnamed</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_file.html" title="syn::visit::visit_file fn">visit_file</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_fn_arg.html" title="syn::visit::visit_fn_arg fn">visit_fn_arg</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_foreign_item.html" title="syn::visit::visit_foreign_item fn">visit_foreign_item</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_foreign_item_fn.html" title="syn::visit::visit_foreign_item_fn fn">visit_foreign_item_fn</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_foreign_item_macro.html" title="syn::visit::visit_foreign_item_macro fn">visit_foreign_item_macro</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_foreign_item_static.html" title="syn::visit::visit_foreign_item_static fn">visit_foreign_item_static</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_foreign_item_type.html" title="syn::visit::visit_foreign_item_type fn">visit_foreign_item_type</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_generic_argument.html" title="syn::visit::visit_generic_argument fn">visit_generic_argument</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_generic_param.html" title="syn::visit::visit_generic_param fn">visit_generic_param</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_generics.html" title="syn::visit::visit_generics fn">visit_generics</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_ident.html" title="syn::visit::visit_ident fn">visit_ident</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_impl_item.html" title="syn::visit::visit_impl_item fn">visit_impl_item</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_impl_item_const.html" title="syn::visit::visit_impl_item_const fn">visit_impl_item_const</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_impl_item_fn.html" title="syn::visit::visit_impl_item_fn fn">visit_impl_item_fn</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_impl_item_macro.html" title="syn::visit::visit_impl_item_macro fn">visit_impl_item_macro</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_impl_item_type.html" title="syn::visit::visit_impl_item_type fn">visit_impl_item_type</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_impl_restriction.html" title="syn::visit::visit_impl_restriction fn">visit_impl_restriction</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_index.html" title="syn::visit::visit_index fn">visit_index</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item.html" title="syn::visit::visit_item fn">visit_item</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_const.html" title="syn::visit::visit_item_const fn">visit_item_const</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_enum.html" title="syn::visit::visit_item_enum fn">visit_item_enum</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_extern_crate.html" title="syn::visit::visit_item_extern_crate fn">visit_item_extern_crate</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_fn.html" title="syn::visit::visit_item_fn fn">visit_item_fn</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_foreign_mod.html" title="syn::visit::visit_item_foreign_mod fn">visit_item_foreign_mod</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_impl.html" title="syn::visit::visit_item_impl fn">visit_item_impl</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_macro.html" title="syn::visit::visit_item_macro fn">visit_item_macro</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_mod.html" title="syn::visit::visit_item_mod fn">visit_item_mod</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_static.html" title="syn::visit::visit_item_static fn">visit_item_static</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_struct.html" title="syn::visit::visit_item_struct fn">visit_item_struct</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_trait.html" title="syn::visit::visit_item_trait fn">visit_item_trait</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_trait_alias.html" title="syn::visit::visit_item_trait_alias fn">visit_item_trait_alias</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_type.html" title="syn::visit::visit_item_type fn">visit_item_type</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_union.html" title="syn::visit::visit_item_union fn">visit_item_union</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_item_use.html" title="syn::visit::visit_item_use fn">visit_item_use</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_label.html" title="syn::visit::visit_label fn">visit_label</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_lifetime.html" title="syn::visit::visit_lifetime fn">visit_lifetime</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_lifetime_param.html" title="syn::visit::visit_lifetime_param fn">visit_lifetime_param</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_lit.html" title="syn::visit::visit_lit fn">visit_lit</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_lit_bool.html" title="syn::visit::visit_lit_bool fn">visit_lit_bool</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_lit_byte.html" title="syn::visit::visit_lit_byte fn">visit_lit_byte</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_lit_byte_str.html" title="syn::visit::visit_lit_byte_str fn">visit_lit_byte_str</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_lit_char.html" title="syn::visit::visit_lit_char fn">visit_lit_char</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_lit_float.html" title="syn::visit::visit_lit_float fn">visit_lit_float</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_lit_int.html" title="syn::visit::visit_lit_int fn">visit_lit_int</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_lit_str.html" title="syn::visit::visit_lit_str fn">visit_lit_str</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_local.html" title="syn::visit::visit_local fn">visit_local</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_local_init.html" title="syn::visit::visit_local_init fn">visit_local_init</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_macro.html" title="syn::visit::visit_macro fn">visit_macro</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_macro_delimiter.html" title="syn::visit::visit_macro_delimiter fn">visit_macro_delimiter</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_member.html" title="syn::visit::visit_member fn">visit_member</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_meta.html" title="syn::visit::visit_meta fn">visit_meta</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_meta_list.html" title="syn::visit::visit_meta_list fn">visit_meta_list</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_meta_name_value.html" title="syn::visit::visit_meta_name_value fn">visit_meta_name_value</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_parenthesized_generic_arguments.html" title="syn::visit::visit_parenthesized_generic_arguments fn">visit_parenthesized_generic_arguments</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat.html" title="syn::visit::visit_pat fn">visit_pat</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_ident.html" title="syn::visit::visit_pat_ident fn">visit_pat_ident</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_or.html" title="syn::visit::visit_pat_or fn">visit_pat_or</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_paren.html" title="syn::visit::visit_pat_paren fn">visit_pat_paren</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_reference.html" title="syn::visit::visit_pat_reference fn">visit_pat_reference</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_rest.html" title="syn::visit::visit_pat_rest fn">visit_pat_rest</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_slice.html" title="syn::visit::visit_pat_slice fn">visit_pat_slice</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_struct.html" title="syn::visit::visit_pat_struct fn">visit_pat_struct</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_tuple.html" title="syn::visit::visit_pat_tuple fn">visit_pat_tuple</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_tuple_struct.html" title="syn::visit::visit_pat_tuple_struct fn">visit_pat_tuple_struct</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_type.html" title="syn::visit::visit_pat_type fn">visit_pat_type</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_pat_wild.html" title="syn::visit::visit_pat_wild fn">visit_pat_wild</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_path.html" title="syn::visit::visit_path fn">visit_path</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_path_arguments.html" title="syn::visit::visit_path_arguments fn">visit_path_arguments</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_path_segment.html" title="syn::visit::visit_path_segment fn">visit_path_segment</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_predicate_lifetime.html" title="syn::visit::visit_predicate_lifetime fn">visit_predicate_lifetime</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_predicate_type.html" title="syn::visit::visit_predicate_type fn">visit_predicate_type</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_qself.html" title="syn::visit::visit_qself fn">visit_qself</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_range_limits.html" title="syn::visit::visit_range_limits fn">visit_range_limits</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_receiver.html" title="syn::visit::visit_receiver fn">visit_receiver</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_return_type.html" title="syn::visit::visit_return_type fn">visit_return_type</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_signature.html" title="syn::visit::visit_signature fn">visit_signature</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_span.html" title="syn::visit::visit_span fn">visit_span</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_static_mutability.html" title="syn::visit::visit_static_mutability fn">visit_static_mutability</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_stmt.html" title="syn::visit::visit_stmt fn">visit_stmt</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_stmt_macro.html" title="syn::visit::visit_stmt_macro fn">visit_stmt_macro</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_trait_bound.html" title="syn::visit::visit_trait_bound fn">visit_trait_bound</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_trait_bound_modifier.html" title="syn::visit::visit_trait_bound_modifier fn">visit_trait_bound_modifier</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_trait_item.html" title="syn::visit::visit_trait_item fn">visit_trait_item</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_trait_item_const.html" title="syn::visit::visit_trait_item_const fn">visit_trait_item_const</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_trait_item_fn.html" title="syn::visit::visit_trait_item_fn fn">visit_trait_item_fn</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_trait_item_macro.html" title="syn::visit::visit_trait_item_macro fn">visit_trait_item_macro</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_trait_item_type.html" title="syn::visit::visit_trait_item_type fn">visit_trait_item_type</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type.html" title="syn::visit::visit_type fn">visit_type</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_array.html" title="syn::visit::visit_type_array fn">visit_type_array</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_bare_fn.html" title="syn::visit::visit_type_bare_fn fn">visit_type_bare_fn</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_group.html" title="syn::visit::visit_type_group fn">visit_type_group</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_impl_trait.html" title="syn::visit::visit_type_impl_trait fn">visit_type_impl_trait</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_infer.html" title="syn::visit::visit_type_infer fn">visit_type_infer</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_macro.html" title="syn::visit::visit_type_macro fn">visit_type_macro</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_never.html" title="syn::visit::visit_type_never fn">visit_type_never</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_param.html" title="syn::visit::visit_type_param fn">visit_type_param</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_param_bound.html" title="syn::visit::visit_type_param_bound fn">visit_type_param_bound</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_paren.html" title="syn::visit::visit_type_paren fn">visit_type_paren</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_path.html" title="syn::visit::visit_type_path fn">visit_type_path</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_ptr.html" title="syn::visit::visit_type_ptr fn">visit_type_ptr</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_reference.html" title="syn::visit::visit_type_reference fn">visit_type_reference</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_slice.html" title="syn::visit::visit_type_slice fn">visit_type_slice</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_trait_object.html" title="syn::visit::visit_type_trait_object fn">visit_type_trait_object</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_type_tuple.html" title="syn::visit::visit_type_tuple fn">visit_type_tuple</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_un_op.html" title="syn::visit::visit_un_op fn">visit_un_op</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_use_glob.html" title="syn::visit::visit_use_glob fn">visit_use_glob</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_use_group.html" title="syn::visit::visit_use_group fn">visit_use_group</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_use_name.html" title="syn::visit::visit_use_name fn">visit_use_name</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_use_path.html" title="syn::visit::visit_use_path fn">visit_use_path</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_use_rename.html" title="syn::visit::visit_use_rename fn">visit_use_rename</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_use_tree.html" title="syn::visit::visit_use_tree fn">visit_use_tree</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_variadic.html" title="syn::visit::visit_variadic fn">visit_variadic</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_variant.html" title="syn::visit::visit_variant fn">visit_variant</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_vis_restricted.html" title="syn::visit::visit_vis_restricted fn">visit_vis_restricted</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_visibility.html" title="syn::visit::visit_visibility fn">visit_visibility</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_where_clause.html" title="syn::visit::visit_where_clause fn">visit_where_clause</a></div></div><div class="item-row"><div class="item-left module-item"><a class="fn" href="fn.visit_where_predicate.html" title="syn::visit::visit_where_predicate fn">visit_where_predicate</a></div></div></div></section></div></main><div id="rustdoc-vars" data-root-path="../../" data-current-crate="syn" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>