rust-analyzer/ide_ssr/struct.MatchFinder.html
2026-01-20 17:06:49 +00:00

106 lines
52 KiB
HTML
Raw Permalink 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="Searches a crate for pattern matches and possibly replaces them with something else."><title>MatchFinder in ide_ssr - Rust</title><script>if(window.location.protocol!=="file:")document.head.insertAdjacentHTML("beforeend","SourceSerif4-Regular-6b053e98.ttf.woff2,FiraSans-Italic-81dc35de.woff2,FiraSans-Regular-0fe48ade.woff2,FiraSans-MediumItalic-ccf7e434.woff2,FiraSans-Medium-e1aa3f0a.woff2,SourceCodePro-Regular-8badfe75.ttf.woff2,SourceCodePro-Semibold-aa29a496.ttf.woff2".split(",").map(f=>`<link rel="preload" as="font" type="font/woff2"href="../static.files/${f}">`).join(""))</script><link rel="stylesheet" href="../static.files/normalize-9960930a.css"><link rel="stylesheet" href="../static.files/rustdoc-ca0dd0c4.css"><meta name="rustdoc-vars" data-root-path="../" data-static-root-path="../static.files/" data-current-crate="ide_ssr" data-themes="" data-resource-suffix="" data-rustdoc-version="1.92.0 (ded5c06cf 2025-12-08)" data-channel="1.92.0" data-search-js="search-d69d8955.js" data-stringdex-js="stringdex-c3e638e9.js" data-settings-js="settings-c38705f0.js" ><script src="../static.files/storage-e2aeef58.js"></script><script defer src="sidebar-items.js"></script><script defer src="../static.files/main-ce535bd0.js"></script><noscript><link rel="stylesheet" href="../static.files/noscript-263c88ec.css"></noscript><link rel="alternate icon" type="image/png" href="../static.files/favicon-32x32-eab170b8.png"><link rel="icon" type="image/svg+xml" href="../static.files/favicon-044be391.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><rustdoc-topbar><h2><a href="#">MatchFinder</a></h2></rustdoc-topbar><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../ide_ssr/index.html">ide_ssr</a><span class="version">0.0.0</span></h2></div><div class="sidebar-elems"><section id="rustdoc-toc"><h2 class="location"><a href="#">Match<wbr>Finder</a></h2><h3><a href="#fields">Fields</a></h3><ul class="block structfield"><li><a href="#structfield.resolution_scope" title="resolution_scope">resolution_scope</a></li><li><a href="#structfield.restrict_ranges" title="restrict_ranges">restrict_ranges</a></li><li><a href="#structfield.rules" title="rules">rules</a></li><li><a href="#structfield.sema" title="sema">sema</a></li></ul><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.add_rule" title="add_rule">add_rule</a></li><li><a href="#method.add_search_pattern" title="add_search_pattern">add_search_pattern</a></li><li><a href="#method.at_first_file" title="at_first_file">at_first_file</a></li><li><a href="#method.debug_where_text_equal" title="debug_where_text_equal">debug_where_text_equal</a></li><li><a href="#method.edits" title="edits">edits</a></li><li><a href="#method.find_matches_for_pattern_tree" title="find_matches_for_pattern_tree">find_matches_for_pattern_tree</a></li><li><a href="#method.find_matches_for_rule" title="find_matches_for_rule">find_matches_for_rule</a></li><li><a href="#method.find_nodes_to_match" title="find_nodes_to_match">find_nodes_to_match</a></li><li><a href="#method.find_usages" title="find_usages">find_usages</a></li><li><a href="#method.in_context" title="in_context">in_context</a></li><li><a href="#method.matches" title="matches">matches</a></li><li><a href="#method.output_debug_for_nodes_at_range" title="output_debug_for_nodes_at_range">output_debug_for_nodes_at_range</a></li><li><a href="#method.search_files_do" title="search_files_do">search_files_do</a></li><li><a href="#method.search_scope" title="search_scope">search_scope</a></li><li><a href="#method.slow_scan" title="slow_scan">slow_scan</a></li><li><a href="#method.slow_scan_node" title="slow_scan_node">slow_scan_node</a></li><li><a href="#method.try_add_match" title="try_add_match">try_add_match</a></li><li><a href="#method.within_range_restrictions" title="within_range_restrictions">within_range_restrictions</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-Freeze-for-MatchFinder%3C'db%3E" title="!Freeze">!Freeze</a></li><li><a href="#impl-RefUnwindSafe-for-MatchFinder%3C'db%3E" title="!RefUnwindSafe">!RefUnwindSafe</a></li><li><a href="#impl-Send-for-MatchFinder%3C'db%3E" title="!Send">!Send</a></li><li><a href="#impl-Sync-for-MatchFinder%3C'db%3E" title="!Sync">!Sync</a></li><li><a href="#impl-UnwindSafe-for-MatchFinder%3C'db%3E" title="!UnwindSafe">!UnwindSafe</a></li><li><a href="#impl-Unpin-for-MatchFinder%3C'db%3E" title="Unpin">Unpin</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T" title="Any">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T" title="Borrow&#60;T&#62;">Borrow&#60;T&#62;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T" title="BorrowMut&#60;T&#62;">BorrowMut&#60;T&#62;</a></li><li><a href="#impl-Captures%3C'a%3E-for-T" title="Captures&#60;&#39;a&#62;">Captures&#60;&#39;a&#62;</a></li><li><a href="#impl-CollectAndApply%3CT,+R%3E-for-T" title="CollectAndApply&#60;T, R&#62;">CollectAndApply&#60;T, R&#62;</a></li><li><a href="#impl-From%3CT%3E-for-T" title="From&#60;T&#62;">From&#60;T&#62;</a></li><li><a href="#impl-Instrument-for-T" title="Instrument">Instrument</a></li><li><a href="#impl-Into%3CU%3E-for-T" title="Into&#60;U&#62;">Into&#60;U&#62;</a></li><li><a href="#impl-IntoBox%3Cdyn+Any%3E-for-T" title="IntoBox&#60;dyn Any&#62;">IntoBox&#60;dyn Any&#62;</a></li><li><a href="#impl-IntoEither-for-T" title="IntoEither">IntoEither</a></li><li><a href="#impl-Pointable-for-T" title="Pointable">Pointable</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T" title="TryFrom&#60;U&#62;">TryFrom&#60;U&#62;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T" title="TryInto&#60;U&#62;">TryInto&#60;U&#62;</a></li><li><a href="#impl-Upcast%3CI,+U%3E-for-T" title="Upcast&#60;I, U&#62;">Upcast&#60;I, U&#62;</a></li><li><a href="#impl-UpcastFrom%3CI,+T%3E-for-T" title="UpcastFrom&#60;I, T&#62;">UpcastFrom&#60;I, T&#62;</a></li><li><a href="#impl-WithSubscriber-for-T" title="WithSubscriber">WithSubscriber</a></li></ul></section><div id="rustdoc-modnav"><h2 class="in-crate"><a href="index.html">In crate ide_<wbr>ssr</a></h2></div></div></nav><div class="sidebar-resizer" title="Drag to resize sidebar"></div><main><div class="width-limiter"><section id="main-content" class="content"><div class="main-heading"><div class="rustdoc-breadcrumbs"><a href="index.html">ide_ssr</a></div><h1>Struct <span class="struct">Match<wbr>Finder</span>&nbsp;<button id="copy-path" title="Copy item path to clipboard">Copy item path</button></h1><rustdoc-toolbar></rustdoc-toolbar><span class="sub-heading"><a class="src" href="../src/ide_ssr/lib.rs.html#115-121">Source</a> </span></div><pre class="rust item-decl"><code>pub struct MatchFinder&lt;'db&gt; {
pub(crate) sema: Semantics&lt;'db, RootDatabase&gt;,
pub(crate) rules: <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="resolving/struct.ResolvedRule.html" title="struct ide_ssr::resolving::ResolvedRule">ResolvedRule</a>&lt;'db&gt;&gt;,
pub(crate) resolution_scope: <a class="struct" href="resolving/struct.ResolutionScope.html" title="struct ide_ssr::resolving::ResolutionScope">ResolutionScope</a>&lt;'db&gt;,
pub(crate) restrict_ranges: <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;FileRange&gt;,
}</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>Searches a crate for pattern matches and possibly replaces them with something else.</p>
</div></details><h2 id="fields" class="fields section-header">Fields<a href="#fields" class="anchor">§</a></h2><span id="structfield.sema" class="structfield section-header"><a href="#structfield.sema" class="anchor field">§</a><code>sema: Semantics&lt;'db, RootDatabase&gt;</code></span><div class="docblock"><p>Our source of information about the users code.</p>
</div><span id="structfield.rules" class="structfield section-header"><a href="#structfield.rules" class="anchor field">§</a><code>rules: <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="resolving/struct.ResolvedRule.html" title="struct ide_ssr::resolving::ResolvedRule">ResolvedRule</a>&lt;'db&gt;&gt;</code></span><span id="structfield.resolution_scope" class="structfield section-header"><a href="#structfield.resolution_scope" class="anchor field">§</a><code>resolution_scope: <a class="struct" href="resolving/struct.ResolutionScope.html" title="struct ide_ssr::resolving::ResolutionScope">ResolutionScope</a>&lt;'db&gt;</code></span><span id="structfield.restrict_ranges" class="structfield section-header"><a href="#structfield.restrict_ranges" class="anchor field">§</a><code>restrict_ranges: <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;FileRange&gt;</code></span><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-MatchFinder%3C'db%3E" class="impl"><a class="src rightside" href="../src/ide_ssr/search.rs.html#24-234">Source</a><a href="#impl-MatchFinder%3C'db%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'db&gt; <a class="struct" href="struct.MatchFinder.html" title="struct ide_ssr::MatchFinder">MatchFinder</a>&lt;'db&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.find_matches_for_rule" class="method"><a class="src rightside" href="../src/ide_ssr/search.rs.html#28-48">Source</a><h4 class="code-header">pub(crate) fn <a href="#method.find_matches_for_rule" class="fn">find_matches_for_rule</a>(
&amp;self,
rule: &amp;<a class="struct" href="resolving/struct.ResolvedRule.html" title="struct ide_ssr::resolving::ResolvedRule">ResolvedRule</a>&lt;'db&gt;,
usage_cache: &amp;mut <a class="struct" href="search/struct.UsageCache.html" title="struct ide_ssr::search::UsageCache">UsageCache</a>,
matches_out: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Match.html" title="struct ide_ssr::Match">Match</a>&gt;,
)</h4></section></summary><div class="docblock"><p>Adds all matches for <code>rule</code> to <code>matches_out</code>. Matches may overlap in ways that make
replacement impossible, so further processing is required in order to properly nest matches
and remove overlapping matches. This is done in the <code>nesting</code> module.</p>
</div></details><section id="method.find_matches_for_pattern_tree" class="method"><a class="src rightside" href="../src/ide_ssr/search.rs.html#50-69">Source</a><h4 class="code-header">fn <a href="#method.find_matches_for_pattern_tree" class="fn">find_matches_for_pattern_tree</a>(
&amp;self,
rule: &amp;<a class="struct" href="resolving/struct.ResolvedRule.html" title="struct ide_ssr::resolving::ResolvedRule">ResolvedRule</a>&lt;'db&gt;,
pattern: &amp;<a class="struct" href="resolving/struct.ResolvedPattern.html" title="struct ide_ssr::resolving::ResolvedPattern">ResolvedPattern</a>&lt;'db&gt;,
usage_cache: &amp;mut <a class="struct" href="search/struct.UsageCache.html" title="struct ide_ssr::search::UsageCache">UsageCache</a>,
matches_out: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Match.html" title="struct ide_ssr::Match">Match</a>&gt;,
)</h4></section><section id="method.find_nodes_to_match" class="method"><a class="src rightside" href="../src/ide_ssr/search.rs.html#71-111">Source</a><h4 class="code-header">fn <a href="#method.find_nodes_to_match" class="fn">find_nodes_to_match</a>(
&amp;self,
resolved_path: &amp;<a class="struct" href="resolving/struct.ResolvedPath.html" title="struct ide_ssr::resolving::ResolvedPath">ResolvedPath</a>,
file_range: FileRange,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;SyntaxNode&gt; <a href="#" class="tooltip" data-notable-ty="Vec&lt;SyntaxNode&gt;"></a></h4></section><section id="method.find_usages" class="method"><a class="src rightside" href="../src/ide_ssr/search.rs.html#113-128">Source</a><h4 class="code-header">fn <a href="#method.find_usages" class="fn">find_usages</a>&lt;'a&gt;(
&amp;self,
usage_cache: &amp;'a mut <a class="struct" href="search/struct.UsageCache.html" title="struct ide_ssr::search::UsageCache">UsageCache</a>,
definition: Definition,
) -&gt; &amp;'a UsageSearchResult</h4></section><details class="toggle method-toggle" open><summary><section id="method.search_scope" class="method"><a class="src rightside" href="../src/ide_ssr/search.rs.html#132-141">Source</a><h4 class="code-header">fn <a href="#method.search_scope" class="fn">search_scope</a>(&amp;self) -&gt; SearchScope</h4></section></summary><div class="docblock"><p>Returns the scope within which we want to search. We dont want un unrestricted search
scope, since we dont want to find references in external dependencies.</p>
</div></details><section id="method.slow_scan" class="method"><a class="src rightside" href="../src/ide_ssr/search.rs.html#143-149">Source</a><h4 class="code-header">fn <a href="#method.slow_scan" class="fn">slow_scan</a>(&amp;self, rule: &amp;<a class="struct" href="resolving/struct.ResolvedRule.html" title="struct ide_ssr::resolving::ResolvedRule">ResolvedRule</a>&lt;'db&gt;, matches_out: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Match.html" title="struct ide_ssr::Match">Match</a>&gt;)</h4></section><section id="method.search_files_do" class="method"><a class="src rightside" href="../src/ide_ssr/search.rs.html#151-170">Source</a><h4 class="code-header">fn <a href="#method.search_files_do" class="fn">search_files_do</a>(&amp;self, callback: impl <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(FileId))</h4></section><section id="method.slow_scan_node" class="method"><a class="src rightside" href="../src/ide_ssr/search.rs.html#172-199">Source</a><h4 class="code-header">fn <a href="#method.slow_scan_node" class="fn">slow_scan_node</a>(
&amp;self,
code: &amp;SyntaxNode,
rule: &amp;<a class="struct" href="resolving/struct.ResolvedRule.html" title="struct ide_ssr::resolving::ResolvedRule">ResolvedRule</a>&lt;'db&gt;,
restrict_range: &amp;<a class="enum" href="https://doc.rust-lang.org/1.92.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;FileRange&gt;,
matches_out: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Match.html" title="struct ide_ssr::Match">Match</a>&gt;,
)</h4></section><section id="method.try_add_match" class="method"><a class="src rightside" href="../src/ide_ssr/search.rs.html#201-215">Source</a><h4 class="code-header">fn <a href="#method.try_add_match" class="fn">try_add_match</a>(
&amp;self,
rule: &amp;<a class="struct" href="resolving/struct.ResolvedRule.html" title="struct ide_ssr::resolving::ResolvedRule">ResolvedRule</a>&lt;'db&gt;,
code: &amp;SyntaxNode,
restrict_range: &amp;<a class="enum" href="https://doc.rust-lang.org/1.92.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;FileRange&gt;,
matches_out: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.Match.html" title="struct ide_ssr::Match">Match</a>&gt;,
)</h4></section><details class="toggle method-toggle" open><summary><section id="method.within_range_restrictions" class="method"><a class="src rightside" href="../src/ide_ssr/search.rs.html#219-233">Source</a><h4 class="code-header">fn <a href="#method.within_range_restrictions" class="fn">within_range_restrictions</a>(&amp;self, code: &amp;SyntaxNode) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.bool.html">bool</a></h4></section></summary><div class="docblock"><p>Returns whether <code>code</code> is within one of our range restrictions if we have any. No range
restrictions is considered unrestricted and always returns true.</p>
</div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-MatchFinder%3C'db%3E-1" class="impl"><a class="src rightside" href="../src/ide_ssr/lib.rs.html#123-303">Source</a><a href="#impl-MatchFinder%3C'db%3E-1" class="anchor">§</a><h3 class="code-header">impl&lt;'db&gt; <a class="struct" href="struct.MatchFinder.html" title="struct ide_ssr::MatchFinder">MatchFinder</a>&lt;'db&gt;</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.in_context" class="method"><a class="src rightside" href="../src/ide_ssr/lib.rs.html#126-140">Source</a><h4 class="code-header">pub fn <a href="#method.in_context" class="fn">in_context</a>(
db: &amp;'db RootDatabase,
lookup_context: FilePosition,
restrict_ranges: <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;FileRange&gt;,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.92.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.MatchFinder.html" title="struct ide_ssr::MatchFinder">MatchFinder</a>&lt;'db&gt;, <a class="struct" href="struct.SsrError.html" title="struct ide_ssr::SsrError">SsrError</a>&gt;</h4></section></summary><div class="docblock"><p>Constructs a new instance where names will be looked up as if they appeared at
<code>lookup_context</code>.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.at_first_file" class="method"><a class="src rightside" href="../src/ide_ssr/lib.rs.html#143-158">Source</a><h4 class="code-header">pub fn <a href="#method.at_first_file" class="fn">at_first_file</a>(
db: &amp;'db RootDatabase,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.92.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.MatchFinder.html" title="struct ide_ssr::MatchFinder">MatchFinder</a>&lt;'db&gt;, <a class="struct" href="struct.SsrError.html" title="struct ide_ssr::SsrError">SsrError</a>&gt;</h4></section></summary><div class="docblock"><p>Constructs an instance using the start of the first file in <code>db</code> as the lookup context.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.add_rule" class="method"><a class="src rightside" href="../src/ide_ssr/lib.rs.html#163-172">Source</a><h4 class="code-header">pub fn <a href="#method.add_rule" class="fn">add_rule</a>(&amp;mut self, rule: <a class="struct" href="struct.SsrRule.html" title="struct ide_ssr::SsrRule">SsrRule</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.92.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SsrError.html" title="struct ide_ssr::SsrError">SsrError</a>&gt;</h4></section></summary><div class="docblock"><p>Adds a rule to be applied. The order in which rules are added matters. Earlier rules take
precedence. If a node is matched by an earlier rule, then later rules wont be permitted to
match to it.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.edits" class="method"><a class="src rightside" href="../src/ide_ssr/lib.rs.html#175-198">Source</a><h4 class="code-header">pub fn <a href="#method.edits" class="fn">edits</a>(&amp;self) -&gt; FxHashMap&lt;FileId, TextEdit&gt;</h4></section></summary><div class="docblock"><p>Finds matches for all added rules and returns edits for all found matches.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.add_search_pattern" class="method"><a class="src rightside" href="../src/ide_ssr/lib.rs.html#202-211">Source</a><h4 class="code-header">pub fn <a href="#method.add_search_pattern" class="fn">add_search_pattern</a>(
&amp;mut self,
pattern: <a class="struct" href="struct.SsrPattern.html" title="struct ide_ssr::SsrPattern">SsrPattern</a>,
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.92.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.unit.html">()</a>, <a class="struct" href="struct.SsrError.html" title="struct ide_ssr::SsrError">SsrError</a>&gt;</h4></section></summary><div class="docblock"><p>Adds a search pattern. For use if you intend to only call <code>find_matches_in_file</code>. If you
intend to do replacement, use <code>add_rule</code> instead.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.matches" class="method"><a class="src rightside" href="../src/ide_ssr/lib.rs.html#214-221">Source</a><h4 class="code-header">pub fn <a href="#method.matches" class="fn">matches</a>(&amp;self) -&gt; <a class="struct" href="struct.SsrMatches.html" title="struct ide_ssr::SsrMatches">SsrMatches</a></h4></section></summary><div class="docblock"><p>Returns matches for all added rules.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.debug_where_text_equal" class="method"><a class="src rightside" href="../src/ide_ssr/lib.rs.html#226-250">Source</a><h4 class="code-header">pub fn <a href="#method.debug_where_text_equal" class="fn">debug_where_text_equal</a>(
&amp;self,
file_id: EditionedFileId,
snippet: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.str.html">str</a>,
) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.MatchDebugInfo.html" title="struct ide_ssr::MatchDebugInfo">MatchDebugInfo</a>&gt;</h4></section></summary><div class="docblock"><p>Finds all nodes in <code>file_id</code> whose text is exactly equal to <code>snippet</code> and attempts to match
them, while recording reasons why they dont match. This API is useful for command
line-based debugging where providing a range is difficult.</p>
</div></details><section id="method.output_debug_for_nodes_at_range" class="method"><a class="src rightside" href="../src/ide_ssr/lib.rs.html#252-302">Source</a><h4 class="code-header">pub(crate) fn <a href="#method.output_debug_for_nodes_at_range" class="fn">output_debug_for_nodes_at_range</a>(
&amp;self,
node: &amp;SyntaxNode,
range: FileRange,
restrict_range: &amp;<a class="enum" href="https://doc.rust-lang.org/1.92.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;FileRange&gt;,
out: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="struct" href="struct.MatchDebugInfo.html" title="struct ide_ssr::MatchDebugInfo">MatchDebugInfo</a>&gt;,
)</h4></section></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-Freeze-for-MatchFinder%3C'db%3E" class="impl"><a href="#impl-Freeze-for-MatchFinder%3C'db%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'db&gt; !<a class="trait" href="https://doc.rust-lang.org/1.92.0/core/marker/trait.Freeze.html" title="trait core::marker::Freeze">Freeze</a> for <a class="struct" href="struct.MatchFinder.html" title="struct ide_ssr::MatchFinder">MatchFinder</a>&lt;'db&gt;</h3></section><section id="impl-RefUnwindSafe-for-MatchFinder%3C'db%3E" class="impl"><a href="#impl-RefUnwindSafe-for-MatchFinder%3C'db%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'db&gt; !<a class="trait" href="https://doc.rust-lang.org/1.92.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.MatchFinder.html" title="struct ide_ssr::MatchFinder">MatchFinder</a>&lt;'db&gt;</h3></section><section id="impl-Send-for-MatchFinder%3C'db%3E" class="impl"><a href="#impl-Send-for-MatchFinder%3C'db%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'db&gt; !<a class="trait" href="https://doc.rust-lang.org/1.92.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.MatchFinder.html" title="struct ide_ssr::MatchFinder">MatchFinder</a>&lt;'db&gt;</h3></section><section id="impl-Sync-for-MatchFinder%3C'db%3E" class="impl"><a href="#impl-Sync-for-MatchFinder%3C'db%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'db&gt; !<a class="trait" href="https://doc.rust-lang.org/1.92.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.MatchFinder.html" title="struct ide_ssr::MatchFinder">MatchFinder</a>&lt;'db&gt;</h3></section><section id="impl-Unpin-for-MatchFinder%3C'db%3E" class="impl"><a href="#impl-Unpin-for-MatchFinder%3C'db%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'db&gt; <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.MatchFinder.html" title="struct ide_ssr::MatchFinder">MatchFinder</a>&lt;'db&gt;</h3></section><section id="impl-UnwindSafe-for-MatchFinder%3C'db%3E" class="impl"><a href="#impl-UnwindSafe-for-MatchFinder%3C'db%3E" class="anchor">§</a><h3 class="code-header">impl&lt;'db&gt; !<a class="trait" href="https://doc.rust-lang.org/1.92.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.MatchFinder.html" title="struct ide_ssr::MatchFinder">MatchFinder</a>&lt;'db&gt;</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.92.0/src/core/any.rs.html#138">Source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.92.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.92.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.92.0/src/core/any.rs.html#139">Source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.92.0/core/any/trait.Any.html#tymethod.type_id" class="fn">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.92.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.92.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.92.0/src/core/borrow.rs.html#212">Source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.92.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.92.0/src/core/borrow.rs.html#214">Source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.92.0/core/borrow/trait.Borrow.html#tymethod.borrow" class="fn">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.reference.html">&amp;T</a></h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.92.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.92.0/src/core/borrow.rs.html#221">Source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.92.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.92.0/src/core/borrow.rs.html#222">Source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.92.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fn">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.reference.html">&amp;mut T</a></h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/1.92.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-CollectAndApply%3CT,+R%3E-for-T" class="impl"><a href="#impl-CollectAndApply%3CT,+R%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, R&gt; CollectAndApply&lt;T, R&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.collect_and_apply" class="method trait-impl"><a href="#method.collect_and_apply" class="anchor">§</a><h4 class="code-header">fn <a class="fn">collect_and_apply</a>&lt;I, F&gt;(iter: I, f: F) -&gt; R<div class="where">where
I: <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/iter/traits/iterator/trait.Iterator.html" title="trait core::iter::traits::iterator::Iterator">Iterator</a>&lt;Item = T&gt;,
F: <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;<a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.slice.html">[T]</a>) -&gt; R,</div></h4></section></summary><div class="docblock"><p>Equivalent to <code>f(&amp;iter.collect::&lt;Vec&lt;_&gt;&gt;())</code>.</p>
</div></details><section id="associatedtype.Output" class="associatedtype trait-impl"><a href="#associatedtype.Output" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Output</a> = R</h4></section></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.92.0/src/core/convert/mod.rs.html#785">Source</a><a href="#impl-From%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.from" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.92.0/src/core/convert/mod.rs.html#788">Source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.92.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Instrument-for-T" class="impl"><a href="#impl-Instrument-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Instrument for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.instrument" class="method trait-impl"><a href="#method.instrument" class="anchor">§</a><h4 class="code-header">fn <a class="fn">instrument</a>(self, span: Span) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the provided [<code>Span</code>], returning an
<code>Instrumented</code> wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.in_current_span" class="method trait-impl"><a href="#method.in_current_span" class="anchor">§</a><h4 class="code-header">fn <a class="fn">in_current_span</a>(self) -&gt; Instrumented&lt;Self&gt;</h4></section></summary><div class='docblock'>Instruments this type with the <a href="super::Span::current()">current</a> <a href="crate::Span"><code>Span</code></a>, returning an
<code>Instrumented</code> wrapper. <a>Read more</a></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.92.0/src/core/convert/mod.rs.html#767-769">Source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.92.0/src/core/convert/mod.rs.html#777">Source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.92.0/core/convert/trait.Into.html#tymethod.into" class="fn">into</a>(self) -&gt; U</h4></section></summary><div class="docblock"><p>Calls <code>U::from(self)</code>.</p>
<p>That is, this conversion is whatever the implementation of
<code><a href="https://doc.rust-lang.org/1.92.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoBox%3Cdyn+Any%3E-for-T" class="impl"><a href="#impl-IntoBox%3Cdyn+Any%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; IntoBox&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a>&gt; for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_box" class="method trait-impl"><a href="#method.into_box" class="anchor">§</a><h4 class="code-header">fn <a class="fn">into_box</a>(self) -&gt; <a class="struct" href="https://doc.rust-lang.org/1.92.0/alloc/boxed/struct.Box.html" title="struct alloc::boxed::Box">Box</a>&lt;dyn <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/any/trait.Any.html" title="trait core::any::Any">Any</a>&gt;</h4></section></summary><div class='docblock'>Convert self into the appropriate boxed form.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-IntoEither-for-T" class="impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#64">Source</a><a href="#impl-IntoEither-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html" title="trait either::into_either::IntoEither">IntoEither</a> for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.into_either" class="method trait-impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#29">Source</a><a href="#method.into_either" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either" class="fn">into_either</a>(self, into_left: <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.bool.html">bool</a>) -&gt; <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a>&lt;Self, Self&gt;</h4></section></summary><div class='docblock'>Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Left" title="variant either::Either::Left"><code>Left</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
if <code>into_left</code> is <code>true</code>.
Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Right" title="variant either::Either::Right"><code>Right</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
otherwise. <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.into_either_with" class="method trait-impl"><a class="src rightside" href="https://docs.rs/either/1/src/either/into_either.rs.html#55-57">Source</a><a href="#method.into_either_with" class="anchor">§</a><h4 class="code-header">fn <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either_with" class="fn">into_either_with</a>&lt;F&gt;(self, into_left: F) -&gt; <a class="enum" href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either">Either</a>&lt;Self, Self&gt;<div class="where">where
F: <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/ops/function/trait.FnOnce.html" title="trait core::ops::function::FnOnce">FnOnce</a>(&amp;Self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class='docblock'>Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Left" title="variant either::Either::Left"><code>Left</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
if <code>into_left(&amp;self)</code> returns <code>true</code>.
Converts <code>self</code> into a <a href="https://docs.rs/either/1/either/enum.Either.html#variant.Right" title="variant either::Either::Right"><code>Right</code></a> variant of <a href="https://docs.rs/either/1/either/enum.Either.html" title="enum either::Either"><code>Either&lt;Self, Self&gt;</code></a>
otherwise. <a href="https://docs.rs/either/1/either/into_either/trait.IntoEither.html#method.into_either_with">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Pointable-for-T" class="impl"><a href="#impl-Pointable-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; Pointable for T</h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedconstant.ALIGN" class="associatedconstant trait-impl"><a href="#associatedconstant.ALIGN" class="anchor">§</a><h4 class="code-header">const <a class="constant">ALIGN</a>: <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>The alignment of pointer.</div></details><details class="toggle" open><summary><section id="associatedtype.Init" class="associatedtype trait-impl"><a href="#associatedtype.Init" class="anchor">§</a><h4 class="code-header">type <a class="associatedtype">Init</a> = T</h4></section></summary><div class='docblock'>The type for initializers.</div></details><details class="toggle method-toggle" open><summary><section id="method.init" class="method trait-impl"><a href="#method.init" class="anchor">§</a><h4 class="code-header">unsafe fn <a class="fn">init</a>(init: &lt;T as Pointable&gt;::Init) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Initializes a with the given initializer. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.deref" class="method trait-impl"><a href="#method.deref" class="anchor">§</a><h4 class="code-header">unsafe fn <a class="fn">deref</a>&lt;'a&gt;(ptr: <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.reference.html">&amp;'a T</a></h4></section></summary><div class='docblock'>Dereferences the given pointer. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.deref_mut" class="method trait-impl"><a href="#method.deref_mut" class="anchor">§</a><h4 class="code-header">unsafe fn <a class="fn">deref_mut</a>&lt;'a&gt;(ptr: <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.usize.html">usize</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.reference.html">&amp;'a mut T</a></h4></section></summary><div class='docblock'>Mutably dereferences the given pointer. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.drop" class="method trait-impl"><a href="#method.drop" class="anchor">§</a><h4 class="code-header">unsafe fn <a class="fn">drop</a>(ptr: <a class="primitive" href="https://doc.rust-lang.org/1.92.0/std/primitive.usize.html">usize</a>)</h4></section></summary><div class='docblock'>Drops the object pointed to by the given pointer. <a>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.92.0/src/core/convert/mod.rs.html#827-829">Source</a><a href="#impl-TryFrom%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.92.0/src/core/convert/mod.rs.html#831">Source</a><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.92.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.92.0/src/core/convert/mod.rs.html#834">Source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryFrom.html#tymethod.try_from" class="fn">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.92.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;T, &lt;T as <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.92.0/src/core/convert/mod.rs.html#811-813">Source</a><a href="#impl-TryInto%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<div class="where">where
U: <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.92.0/src/core/convert/mod.rs.html#815">Source</a><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.92.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.92.0/src/core/convert/mod.rs.html#818">Source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryInto.html#tymethod.try_into" class="fn">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.92.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;U, &lt;U as <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;&gt;::<a class="associatedtype" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Upcast%3CI,+U%3E-for-T" class="impl"><a href="#impl-Upcast%3CI,+U%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;I, T, U&gt; Upcast&lt;I, U&gt; for T<div class="where">where
U: UpcastFrom&lt;I, T&gt;,</div></h3></section></summary><div class="impl-items"><section id="method.upcast" class="method trait-impl"><a href="#method.upcast" class="anchor">§</a><h4 class="code-header">fn <a class="fn">upcast</a>(self, interner: I) -&gt; U</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-UpcastFrom%3CI,+T%3E-for-T" class="impl"><a href="#impl-UpcastFrom%3CI,+T%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;I, T&gt; UpcastFrom&lt;I, T&gt; for T</h3></section></summary><div class="impl-items"><section id="method.upcast_from" class="method trait-impl"><a href="#method.upcast_from" class="anchor">§</a><h4 class="code-header">fn <a class="fn">upcast_from</a>(from: T, _tcx: I) -&gt; T</h4></section></div></details><details class="toggle implementors-toggle"><summary><section id="impl-WithSubscriber-for-T" class="impl"><a href="#impl-WithSubscriber-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; WithSubscriber for T</h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.with_subscriber" class="method trait-impl"><a href="#method.with_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_subscriber</a>&lt;S&gt;(self, subscriber: S) -&gt; WithDispatch&lt;Self&gt;<div class="where">where
S: <a class="trait" href="https://doc.rust-lang.org/1.92.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;Dispatch&gt;,</div></h4></section></summary><div class='docblock'>Attaches the provided <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.with_current_subscriber" class="method trait-impl"><a href="#method.with_current_subscriber" class="anchor">§</a><h4 class="code-header">fn <a class="fn">with_current_subscriber</a>(self) -&gt; WithDispatch&lt;Self&gt;</h4></section></summary><div class='docblock'>Attaches the current <a href="crate::dispatcher#setting-the-default-subscriber">default</a> <a href="super::Subscriber"><code>Subscriber</code></a> to this type, returning a
[<code>WithDispatch</code>] wrapper. <a>Read more</a></div></details></div></details><section id="impl-Captures%3C'a%3E-for-T" class="impl"><a href="#impl-Captures%3C'a%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;'a, T&gt; Captures&lt;'a&gt; for T<div class="where">where
T: ?<a class="trait" href="https://doc.rust-lang.org/1.92.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h3></section></div><script type="text/json" id="notable-traits-data">{"Vec<SyntaxNode>":"<h3>Notable traits for <code><a class=\"struct\" href=\"https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html\" title=\"struct alloc::vec::Vec\">Vec</a>&lt;<a class=\"primitive\" href=\"https://doc.rust-lang.org/1.92.0/std/primitive.u8.html\">u8</a>, A&gt;</code></h3><pre><code><div class=\"where\">impl&lt;A&gt; <a class=\"trait\" href=\"https://doc.rust-lang.org/1.92.0/std/io/trait.Write.html\" title=\"trait std::io::Write\">Write</a> for <a class=\"struct\" href=\"https://doc.rust-lang.org/1.92.0/alloc/vec/struct.Vec.html\" title=\"struct alloc::vec::Vec\">Vec</a>&lt;<a class=\"primitive\" href=\"https://doc.rust-lang.org/1.92.0/std/primitive.u8.html\">u8</a>, A&gt;<div class=\"where\">where\n A: <a class=\"trait\" href=\"https://doc.rust-lang.org/1.92.0/core/alloc/trait.Allocator.html\" title=\"trait core::alloc::Allocator\">Allocator</a>,</div></div>"}</script></section></div></main></body></html>