Files
google-apis-rs/syn/visit/index.html
2024-03-05 21:06:01 +01:00

98 lines
35 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="Syntax tree traversal to walk a shared borrow of a syntax tree."><title>syn::visit - 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 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></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../syn/index.html">syn</a><span class="version">2.0.38</span></h2></div><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><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>Module <a href="../index.html">syn</a>::<wbr><a class="mod" href="#">visit</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/gen/visit.rs.html#4-3502">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><details class="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" title="trait syn::visit::Visit"><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">'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">'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">'ast</span>, V&gt;(v: <span class="kw-2">&amp;mut </span>V, node: <span class="kw-2">&amp;</span><span class="lifetime">'ast </span>ExprBinary)
<span class="kw">where
</span>V: Visit&lt;<span class="lifetime">'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 = "1.0"
// syn = { version = "2.0", features = ["full", "visit"] }
</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">'ast</span>&gt; Visit&lt;<span class="lifetime">'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">'ast </span>ItemFn) {
<span class="macro">println!</span>(<span class="string">"Function with name={}"</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">'ast</span>&gt; {
functions: Vec&lt;<span class="kw-2">&amp;</span><span class="lifetime">'ast </span>ItemFn&gt;,
}
<span class="kw">impl</span>&lt;<span class="lifetime">'ast</span>&gt; Visit&lt;<span class="lifetime">'ast</span>&gt; <span class="kw">for </span>FnVisitor&lt;<span class="lifetime">'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">'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">"Function with name={}"</span>, f.sig.ident);
}
}</code></pre></div>
</div></details><h2 id="traits" class="section-header"><a href="#traits">Traits</a></h2><ul class="item-table"><li><div class="item-name"><a class="trait" href="trait.Visit.html" title="trait syn::visit::Visit">Visit</a></div><div class="desc docblock-short">Syntax tree traversal to walk a shared borrow of a syntax tree.</div></li></ul><h2 id="functions" class="section-header"><a href="#functions">Functions</a></h2><ul class="item-table"><li><div class="item-name"><a class="fn" href="fn.visit_abi.html" title="fn syn::visit::visit_abi">visit_abi</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_angle_bracketed_generic_arguments.html" title="fn syn::visit::visit_angle_bracketed_generic_arguments">visit_angle_bracketed_generic_arguments</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_arm.html" title="fn syn::visit::visit_arm">visit_arm</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_assoc_const.html" title="fn syn::visit::visit_assoc_const">visit_assoc_const</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_assoc_type.html" title="fn syn::visit::visit_assoc_type">visit_assoc_type</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_attr_style.html" title="fn syn::visit::visit_attr_style">visit_attr_style</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_attribute.html" title="fn syn::visit::visit_attribute">visit_attribute</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_bare_fn_arg.html" title="fn syn::visit::visit_bare_fn_arg">visit_bare_fn_arg</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_bare_variadic.html" title="fn syn::visit::visit_bare_variadic">visit_bare_variadic</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_bin_op.html" title="fn syn::visit::visit_bin_op">visit_bin_op</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_block.html" title="fn syn::visit::visit_block">visit_block</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_bound_lifetimes.html" title="fn syn::visit::visit_bound_lifetimes">visit_bound_lifetimes</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_const_param.html" title="fn syn::visit::visit_const_param">visit_const_param</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_constraint.html" title="fn syn::visit::visit_constraint">visit_constraint</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_data.html" title="fn syn::visit::visit_data">visit_data</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_data_enum.html" title="fn syn::visit::visit_data_enum">visit_data_enum</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_data_struct.html" title="fn syn::visit::visit_data_struct">visit_data_struct</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_data_union.html" title="fn syn::visit::visit_data_union">visit_data_union</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_derive_input.html" title="fn syn::visit::visit_derive_input">visit_derive_input</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr.html" title="fn syn::visit::visit_expr">visit_expr</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_array.html" title="fn syn::visit::visit_expr_array">visit_expr_array</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_assign.html" title="fn syn::visit::visit_expr_assign">visit_expr_assign</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_async.html" title="fn syn::visit::visit_expr_async">visit_expr_async</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_await.html" title="fn syn::visit::visit_expr_await">visit_expr_await</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_binary.html" title="fn syn::visit::visit_expr_binary">visit_expr_binary</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_block.html" title="fn syn::visit::visit_expr_block">visit_expr_block</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_break.html" title="fn syn::visit::visit_expr_break">visit_expr_break</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_call.html" title="fn syn::visit::visit_expr_call">visit_expr_call</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_cast.html" title="fn syn::visit::visit_expr_cast">visit_expr_cast</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_closure.html" title="fn syn::visit::visit_expr_closure">visit_expr_closure</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_const.html" title="fn syn::visit::visit_expr_const">visit_expr_const</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_continue.html" title="fn syn::visit::visit_expr_continue">visit_expr_continue</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_field.html" title="fn syn::visit::visit_expr_field">visit_expr_field</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_for_loop.html" title="fn syn::visit::visit_expr_for_loop">visit_expr_for_loop</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_group.html" title="fn syn::visit::visit_expr_group">visit_expr_group</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_if.html" title="fn syn::visit::visit_expr_if">visit_expr_if</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_index.html" title="fn syn::visit::visit_expr_index">visit_expr_index</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_infer.html" title="fn syn::visit::visit_expr_infer">visit_expr_infer</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_let.html" title="fn syn::visit::visit_expr_let">visit_expr_let</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_lit.html" title="fn syn::visit::visit_expr_lit">visit_expr_lit</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_loop.html" title="fn syn::visit::visit_expr_loop">visit_expr_loop</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_macro.html" title="fn syn::visit::visit_expr_macro">visit_expr_macro</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_match.html" title="fn syn::visit::visit_expr_match">visit_expr_match</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_method_call.html" title="fn syn::visit::visit_expr_method_call">visit_expr_method_call</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_paren.html" title="fn syn::visit::visit_expr_paren">visit_expr_paren</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_path.html" title="fn syn::visit::visit_expr_path">visit_expr_path</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_range.html" title="fn syn::visit::visit_expr_range">visit_expr_range</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_reference.html" title="fn syn::visit::visit_expr_reference">visit_expr_reference</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_repeat.html" title="fn syn::visit::visit_expr_repeat">visit_expr_repeat</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_return.html" title="fn syn::visit::visit_expr_return">visit_expr_return</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_struct.html" title="fn syn::visit::visit_expr_struct">visit_expr_struct</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_try.html" title="fn syn::visit::visit_expr_try">visit_expr_try</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_try_block.html" title="fn syn::visit::visit_expr_try_block">visit_expr_try_block</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_tuple.html" title="fn syn::visit::visit_expr_tuple">visit_expr_tuple</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_unary.html" title="fn syn::visit::visit_expr_unary">visit_expr_unary</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_unsafe.html" title="fn syn::visit::visit_expr_unsafe">visit_expr_unsafe</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_while.html" title="fn syn::visit::visit_expr_while">visit_expr_while</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_expr_yield.html" title="fn syn::visit::visit_expr_yield">visit_expr_yield</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_field.html" title="fn syn::visit::visit_field">visit_field</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_field_mutability.html" title="fn syn::visit::visit_field_mutability">visit_field_mutability</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_field_pat.html" title="fn syn::visit::visit_field_pat">visit_field_pat</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_field_value.html" title="fn syn::visit::visit_field_value">visit_field_value</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_fields.html" title="fn syn::visit::visit_fields">visit_fields</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_fields_named.html" title="fn syn::visit::visit_fields_named">visit_fields_named</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_fields_unnamed.html" title="fn syn::visit::visit_fields_unnamed">visit_fields_unnamed</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_file.html" title="fn syn::visit::visit_file">visit_file</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_fn_arg.html" title="fn syn::visit::visit_fn_arg">visit_fn_arg</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_foreign_item.html" title="fn syn::visit::visit_foreign_item">visit_foreign_item</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_foreign_item_fn.html" title="fn syn::visit::visit_foreign_item_fn">visit_foreign_item_fn</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_foreign_item_macro.html" title="fn syn::visit::visit_foreign_item_macro">visit_foreign_item_macro</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_foreign_item_static.html" title="fn syn::visit::visit_foreign_item_static">visit_foreign_item_static</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_foreign_item_type.html" title="fn syn::visit::visit_foreign_item_type">visit_foreign_item_type</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_generic_argument.html" title="fn syn::visit::visit_generic_argument">visit_generic_argument</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_generic_param.html" title="fn syn::visit::visit_generic_param">visit_generic_param</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_generics.html" title="fn syn::visit::visit_generics">visit_generics</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_ident.html" title="fn syn::visit::visit_ident">visit_ident</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_impl_item.html" title="fn syn::visit::visit_impl_item">visit_impl_item</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_impl_item_const.html" title="fn syn::visit::visit_impl_item_const">visit_impl_item_const</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_impl_item_fn.html" title="fn syn::visit::visit_impl_item_fn">visit_impl_item_fn</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_impl_item_macro.html" title="fn syn::visit::visit_impl_item_macro">visit_impl_item_macro</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_impl_item_type.html" title="fn syn::visit::visit_impl_item_type">visit_impl_item_type</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_impl_restriction.html" title="fn syn::visit::visit_impl_restriction">visit_impl_restriction</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_index.html" title="fn syn::visit::visit_index">visit_index</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item.html" title="fn syn::visit::visit_item">visit_item</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_const.html" title="fn syn::visit::visit_item_const">visit_item_const</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_enum.html" title="fn syn::visit::visit_item_enum">visit_item_enum</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_extern_crate.html" title="fn syn::visit::visit_item_extern_crate">visit_item_extern_crate</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_fn.html" title="fn syn::visit::visit_item_fn">visit_item_fn</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_foreign_mod.html" title="fn syn::visit::visit_item_foreign_mod">visit_item_foreign_mod</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_impl.html" title="fn syn::visit::visit_item_impl">visit_item_impl</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_macro.html" title="fn syn::visit::visit_item_macro">visit_item_macro</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_mod.html" title="fn syn::visit::visit_item_mod">visit_item_mod</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_static.html" title="fn syn::visit::visit_item_static">visit_item_static</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_struct.html" title="fn syn::visit::visit_item_struct">visit_item_struct</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_trait.html" title="fn syn::visit::visit_item_trait">visit_item_trait</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_trait_alias.html" title="fn syn::visit::visit_item_trait_alias">visit_item_trait_alias</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_type.html" title="fn syn::visit::visit_item_type">visit_item_type</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_union.html" title="fn syn::visit::visit_item_union">visit_item_union</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_item_use.html" title="fn syn::visit::visit_item_use">visit_item_use</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_label.html" title="fn syn::visit::visit_label">visit_label</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_lifetime.html" title="fn syn::visit::visit_lifetime">visit_lifetime</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_lifetime_param.html" title="fn syn::visit::visit_lifetime_param">visit_lifetime_param</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_lit.html" title="fn syn::visit::visit_lit">visit_lit</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_lit_bool.html" title="fn syn::visit::visit_lit_bool">visit_lit_bool</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_lit_byte.html" title="fn syn::visit::visit_lit_byte">visit_lit_byte</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_lit_byte_str.html" title="fn syn::visit::visit_lit_byte_str">visit_lit_byte_str</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_lit_char.html" title="fn syn::visit::visit_lit_char">visit_lit_char</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_lit_float.html" title="fn syn::visit::visit_lit_float">visit_lit_float</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_lit_int.html" title="fn syn::visit::visit_lit_int">visit_lit_int</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_lit_str.html" title="fn syn::visit::visit_lit_str">visit_lit_str</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_local.html" title="fn syn::visit::visit_local">visit_local</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_local_init.html" title="fn syn::visit::visit_local_init">visit_local_init</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_macro.html" title="fn syn::visit::visit_macro">visit_macro</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_macro_delimiter.html" title="fn syn::visit::visit_macro_delimiter">visit_macro_delimiter</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_member.html" title="fn syn::visit::visit_member">visit_member</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_meta.html" title="fn syn::visit::visit_meta">visit_meta</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_meta_list.html" title="fn syn::visit::visit_meta_list">visit_meta_list</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_meta_name_value.html" title="fn syn::visit::visit_meta_name_value">visit_meta_name_value</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_parenthesized_generic_arguments.html" title="fn syn::visit::visit_parenthesized_generic_arguments">visit_parenthesized_generic_arguments</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat.html" title="fn syn::visit::visit_pat">visit_pat</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_ident.html" title="fn syn::visit::visit_pat_ident">visit_pat_ident</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_or.html" title="fn syn::visit::visit_pat_or">visit_pat_or</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_paren.html" title="fn syn::visit::visit_pat_paren">visit_pat_paren</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_reference.html" title="fn syn::visit::visit_pat_reference">visit_pat_reference</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_rest.html" title="fn syn::visit::visit_pat_rest">visit_pat_rest</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_slice.html" title="fn syn::visit::visit_pat_slice">visit_pat_slice</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_struct.html" title="fn syn::visit::visit_pat_struct">visit_pat_struct</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_tuple.html" title="fn syn::visit::visit_pat_tuple">visit_pat_tuple</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_tuple_struct.html" title="fn syn::visit::visit_pat_tuple_struct">visit_pat_tuple_struct</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_type.html" title="fn syn::visit::visit_pat_type">visit_pat_type</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_pat_wild.html" title="fn syn::visit::visit_pat_wild">visit_pat_wild</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_path.html" title="fn syn::visit::visit_path">visit_path</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_path_arguments.html" title="fn syn::visit::visit_path_arguments">visit_path_arguments</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_path_segment.html" title="fn syn::visit::visit_path_segment">visit_path_segment</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_predicate_lifetime.html" title="fn syn::visit::visit_predicate_lifetime">visit_predicate_lifetime</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_predicate_type.html" title="fn syn::visit::visit_predicate_type">visit_predicate_type</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_qself.html" title="fn syn::visit::visit_qself">visit_qself</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_range_limits.html" title="fn syn::visit::visit_range_limits">visit_range_limits</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_receiver.html" title="fn syn::visit::visit_receiver">visit_receiver</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_return_type.html" title="fn syn::visit::visit_return_type">visit_return_type</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_signature.html" title="fn syn::visit::visit_signature">visit_signature</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_span.html" title="fn syn::visit::visit_span">visit_span</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_static_mutability.html" title="fn syn::visit::visit_static_mutability">visit_static_mutability</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_stmt.html" title="fn syn::visit::visit_stmt">visit_stmt</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_stmt_macro.html" title="fn syn::visit::visit_stmt_macro">visit_stmt_macro</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_trait_bound.html" title="fn syn::visit::visit_trait_bound">visit_trait_bound</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_trait_bound_modifier.html" title="fn syn::visit::visit_trait_bound_modifier">visit_trait_bound_modifier</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_trait_item.html" title="fn syn::visit::visit_trait_item">visit_trait_item</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_trait_item_const.html" title="fn syn::visit::visit_trait_item_const">visit_trait_item_const</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_trait_item_fn.html" title="fn syn::visit::visit_trait_item_fn">visit_trait_item_fn</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_trait_item_macro.html" title="fn syn::visit::visit_trait_item_macro">visit_trait_item_macro</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_trait_item_type.html" title="fn syn::visit::visit_trait_item_type">visit_trait_item_type</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type.html" title="fn syn::visit::visit_type">visit_type</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_array.html" title="fn syn::visit::visit_type_array">visit_type_array</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_bare_fn.html" title="fn syn::visit::visit_type_bare_fn">visit_type_bare_fn</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_group.html" title="fn syn::visit::visit_type_group">visit_type_group</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_impl_trait.html" title="fn syn::visit::visit_type_impl_trait">visit_type_impl_trait</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_infer.html" title="fn syn::visit::visit_type_infer">visit_type_infer</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_macro.html" title="fn syn::visit::visit_type_macro">visit_type_macro</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_never.html" title="fn syn::visit::visit_type_never">visit_type_never</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_param.html" title="fn syn::visit::visit_type_param">visit_type_param</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_param_bound.html" title="fn syn::visit::visit_type_param_bound">visit_type_param_bound</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_paren.html" title="fn syn::visit::visit_type_paren">visit_type_paren</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_path.html" title="fn syn::visit::visit_type_path">visit_type_path</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_ptr.html" title="fn syn::visit::visit_type_ptr">visit_type_ptr</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_reference.html" title="fn syn::visit::visit_type_reference">visit_type_reference</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_slice.html" title="fn syn::visit::visit_type_slice">visit_type_slice</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_trait_object.html" title="fn syn::visit::visit_type_trait_object">visit_type_trait_object</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_type_tuple.html" title="fn syn::visit::visit_type_tuple">visit_type_tuple</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_un_op.html" title="fn syn::visit::visit_un_op">visit_un_op</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_use_glob.html" title="fn syn::visit::visit_use_glob">visit_use_glob</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_use_group.html" title="fn syn::visit::visit_use_group">visit_use_group</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_use_name.html" title="fn syn::visit::visit_use_name">visit_use_name</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_use_path.html" title="fn syn::visit::visit_use_path">visit_use_path</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_use_rename.html" title="fn syn::visit::visit_use_rename">visit_use_rename</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_use_tree.html" title="fn syn::visit::visit_use_tree">visit_use_tree</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_variadic.html" title="fn syn::visit::visit_variadic">visit_variadic</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_variant.html" title="fn syn::visit::visit_variant">visit_variant</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_vis_restricted.html" title="fn syn::visit::visit_vis_restricted">visit_vis_restricted</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_visibility.html" title="fn syn::visit::visit_visibility">visit_visibility</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_where_clause.html" title="fn syn::visit::visit_where_clause">visit_where_clause</a></div></li><li><div class="item-name"><a class="fn" href="fn.visit_where_predicate.html" title="fn syn::visit::visit_where_predicate">visit_where_predicate</a></div></li></ul></section></div></main></body></html>