edlang/aho_corasick/nfa/contiguous/struct.NFA.html
2024-03-27 11:12:16 +00:00

156 lines
63 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="A contiguous NFA implementation of Aho-Corasick."><title>NFA in aho_corasick::nfa::contiguous - 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-5bc39a1768837dd0.css"><meta name="rustdoc-vars" data-root-path="../../../" data-static-root-path="../../../static.files/" data-current-crate="aho_corasick" data-themes="" data-resource-suffix="" data-rustdoc-version="1.77.0 (aedd173a2 2024-03-17)" data-channel="1.77.0" data-search-js="search-dd67cee4cfa65049.js" data-settings-js="settings-4313503d2e1961c2.js" ><script src="../../../static.files/storage-4c98445ec4002617.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../../static.files/main-48f368f3872407c8.js"></script><noscript><link rel="stylesheet" href="../../../static.files/noscript-04d5337699b92874.css"></noscript><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-16x16-8b506e7a72182f1c.png"><link rel="alternate icon" type="image/png" href="../../../static.files/favicon-32x32-422f7d1d52889060.png"><link rel="icon" type="image/svg+xml" href="../../../static.files/favicon-2c020d218678b618.svg"></head><body class="rustdoc struct"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><nav class="mobile-topbar"><button class="sidebar-menu-toggle" title="show sidebar"></button></nav><nav class="sidebar"><div class="sidebar-crate"><h2><a href="../../../aho_corasick/index.html">aho_corasick</a><span class="version">1.1.2</span></h2></div><h2 class="location"><a href="#">NFA</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block method"><li><a href="#method.builder">builder</a></li><li><a href="#method.new">new</a></li></ul><h3><a href="#trait-implementations">Trait Implementations</a></h3><ul class="block trait-implementation"><li><a href="#impl-Automaton-for-NFA">Automaton</a></li><li><a href="#impl-Clone-for-NFA">Clone</a></li><li><a href="#impl-Debug-for-NFA">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block synthetic-implementation"><li><a href="#impl-RefUnwindSafe-for-NFA">RefUnwindSafe</a></li><li><a href="#impl-Send-for-NFA">Send</a></li><li><a href="#impl-Sync-for-NFA">Sync</a></li><li><a href="#impl-Unpin-for-NFA">Unpin</a></li><li><a href="#impl-UnwindSafe-for-NFA">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block blanket-implementation"><li><a href="#impl-Any-for-T">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-T">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-T">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-T">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-T">Into&lt;U&gt;</a></li><li><a href="#impl-ToOwned-for-T">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-T">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-T">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In aho_corasick::nfa::contiguous</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="../../../aho_corasick/all.html" title="show sidebar"></a></div><input class="search-input" name="search" aria-label="Run search in the documentation" autocomplete="off" spellcheck="false" placeholder="Click or press S to search, ? for more options…" type="search"><div id="help-button" tabindex="-1"><a href="../../../help.html" title="help">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1>Struct <a href="../../index.html">aho_corasick</a>::<wbr><a href="../index.html">nfa</a>::<wbr><a href="index.html">contiguous</a>::<wbr><a class="struct" href="#">NFA</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/aho_corasick/nfa/contiguous.rs.html#91-120">source</a> · <button id="toggle-all-docs" title="collapse all docs">[<span>&#x2212;</span>]</button></span></div><pre class="rust item-decl"><code>pub struct NFA { <span class="comment">/* private fields */</span> }</code></pre><details class="toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A contiguous NFA implementation of Aho-Corasick.</p>
<p>When possible, prefer using <a href="../../struct.AhoCorasick.html" title="struct aho_corasick::AhoCorasick"><code>AhoCorasick</code></a> instead of
this type directly. Using an <code>NFA</code> directly is typically only necessary
when one needs access to the <a href="../../automaton/trait.Automaton.html" title="trait aho_corasick::automaton::Automaton"><code>Automaton</code></a> trait implementation.</p>
<p>This NFA can only be built by first constructing a <a href="../noncontiguous/struct.NFA.html" title="struct aho_corasick::nfa::noncontiguous::NFA"><code>noncontiguous::NFA</code></a>.
Both <a href="struct.NFA.html#method.new" title="associated function aho_corasick::nfa::contiguous::NFA::new"><code>NFA::new</code></a> and <a href="struct.Builder.html#method.build" title="method aho_corasick::nfa::contiguous::Builder::build"><code>Builder::build</code></a> do this for you automatically, but
<a href="struct.Builder.html#method.build_from_noncontiguous" title="method aho_corasick::nfa::contiguous::Builder::build_from_noncontiguous"><code>Builder::build_from_noncontiguous</code></a> permits doing it explicitly.</p>
<p>The main difference between a noncontiguous NFA and a contiguous NFA is
that the latter represents all of its states and transitions in a single
allocation, where as the former uses a separate allocation for each state.
Doing this at construction time while keeping a low memory footprint isnt
feasible, which is primarily why there are two different NFA types: one
that does the least amount of work possible to build itself, and another
that does a little extra work to compact itself and make state transitions
faster by making some states use a dense representation.</p>
<p>Because a contiguous NFA uses a single allocation, there is a lot more
opportunity for compression tricks to reduce the heap memory used. Indeed,
it is not uncommon for a contiguous NFA to use an order of magnitude less
heap memory than a noncontiguous NFA. Since building a contiguous NFA
usually only takes a fraction of the time it takes to build a noncontiguous
NFA, the overall build time is not much slower. Thus, in most cases, a
contiguous NFA is the best choice.</p>
<p>Since a contiguous NFA uses various tricks for compression and to achieve
faster state transitions, currently, its limit on the number of states
is somewhat smaller than what a noncontiguous NFA can achieve. Generally
speaking, you shouldnt expect to run into this limit if the number of
patterns is under 1 million. It is plausible that this limit will be
increased in the future. If the limit is reached, building a contiguous NFA
will return an error. Often, since building a contiguous NFA is relatively
cheap, it can make sense to always try it even if you arent sure if it
will fail or not. If it does, you can always fall back to a noncontiguous
NFA. (Indeed, the main <a href="../../struct.AhoCorasick.html" title="struct aho_corasick::AhoCorasick"><code>AhoCorasick</code></a> type employs a
strategy similar to this at construction time.)</p>
<h2 id="example"><a class="doc-anchor" href="#example">§</a>Example</h2>
<p>This example shows how to build an <code>NFA</code> directly and use it to execute
<a href="../../automaton/trait.Automaton.html#method.try_find" title="method aho_corasick::automaton::Automaton::try_find"><code>Automaton::try_find</code></a>:</p>
<div class="example-wrap"><pre class="rust rust-example-rendered"><code><span class="kw">use </span>aho_corasick::{
automaton::Automaton,
nfa::contiguous::NFA,
Input, Match,
};
<span class="kw">let </span>patterns = <span class="kw-2">&amp;</span>[<span class="string">"b"</span>, <span class="string">"abc"</span>, <span class="string">"abcd"</span>];
<span class="kw">let </span>haystack = <span class="string">"abcd"</span>;
<span class="kw">let </span>nfa = NFA::new(patterns).unwrap();
<span class="macro">assert_eq!</span>(
<span class="prelude-val">Some</span>(Match::must(<span class="number">0</span>, <span class="number">1</span>..<span class="number">2</span>)),
nfa.try_find(<span class="kw-2">&amp;</span>Input::new(haystack))<span class="question-mark">?</span>,
);</code></pre></div>
<p>It is also possible to implement your own version of <code>try_find</code>. See the
<a href="../../automaton/trait.Automaton.html" title="trait aho_corasick::automaton::Automaton"><code>Automaton</code></a> documentation for an example.</p>
</div></details><h2 id="implementations" class="section-header">Implementations<a href="#implementations" class="anchor">§</a></h2><div id="implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-NFA" class="impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#122-142">source</a><a href="#impl-NFA" class="anchor">§</a><h3 class="code-header">impl <a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.new" class="method"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#127-133">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fn">new</a>&lt;I, P&gt;(patterns: I) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a>, <a class="struct" href="../../struct.BuildError.html" title="struct aho_corasick::BuildError">BuildError</a>&gt;<div class="where">where
I: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = P&gt;,
P: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;[<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>]&gt;,</div></h4></section></summary><div class="docblock"><p>Create a new Aho-Corasick contiguous NFA using the default
configuration.</p>
<p>Use a <a href="struct.Builder.html" title="struct aho_corasick::nfa::contiguous::Builder"><code>Builder</code></a> if you want to change the configuration.</p>
</div></details><details class="toggle method-toggle" open><summary><section id="method.builder" class="method"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#139-141">source</a><h4 class="code-header">pub fn <a href="#method.builder" class="fn">builder</a>() -&gt; <a class="struct" href="struct.Builder.html" title="struct aho_corasick::nfa::contiguous::Builder">Builder</a></h4></section></summary><div class="docblock"><p>A convenience method for returning a new Aho-Corasick contiguous NFA
builder.</p>
<p>This usually permits one to just import the <code>NFA</code> type.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="section-header">Trait Implementations<a href="#trait-implementations" class="anchor">§</a></h2><div id="trait-implementations-list"><details class="toggle implementors-toggle" open><summary><section id="impl-Automaton-for-NFA" class="impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#176-322">source</a><a href="#impl-Automaton-for-NFA" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="../../automaton/trait.Automaton.html" title="trait aho_corasick::automaton::Automaton">Automaton</a> for <a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.start_state" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#178-183">source</a><a href="#method.start_state" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.start_state" class="fn">start_state</a>(&amp;self, anchored: <a class="enum" href="../../enum.Anchored.html" title="enum aho_corasick::Anchored">Anchored</a>) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../automaton/struct.StateID.html" title="struct aho_corasick::automaton::StateID">StateID</a>, <a class="struct" href="../../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;</h4></section></summary><div class='docblock'>Returns the starting state for the given anchor mode. <a href="../../automaton/trait.Automaton.html#tymethod.start_state">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.next_state" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#186-247">source</a><a href="#method.next_state" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.next_state" class="fn">next_state</a>(&amp;self, anchored: <a class="enum" href="../../enum.Anchored.html" title="enum aho_corasick::Anchored">Anchored</a>, sid: <a class="struct" href="../../automaton/struct.StateID.html" title="struct aho_corasick::automaton::StateID">StateID</a>, byte: <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>) -&gt; <a class="struct" href="../../automaton/struct.StateID.html" title="struct aho_corasick::automaton::StateID">StateID</a></h4></section></summary><div class='docblock'>Performs a state transition from <code>sid</code> for <code>byte</code> and returns the next
state. <a href="../../automaton/trait.Automaton.html#tymethod.next_state">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.is_special" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#250-252">source</a><a href="#method.is_special" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.is_special" class="fn">is_special</a>(&amp;self, sid: <a class="struct" href="../../automaton/struct.StateID.html" title="struct aho_corasick::automaton::StateID">StateID</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the given ID represents a “special” state. A special
state is a dead, match or start state. <a href="../../automaton/trait.Automaton.html#tymethod.is_special">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.is_dead" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#255-257">source</a><a href="#method.is_dead" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.is_dead" class="fn">is_dead</a>(&amp;self, sid: <a class="struct" href="../../automaton/struct.StateID.html" title="struct aho_corasick::automaton::StateID">StateID</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the given ID represents a dead state. <a href="../../automaton/trait.Automaton.html#tymethod.is_dead">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.is_match" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#260-262">source</a><a href="#method.is_match" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.is_match" class="fn">is_match</a>(&amp;self, sid: <a class="struct" href="../../automaton/struct.StateID.html" title="struct aho_corasick::automaton::StateID">StateID</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the given ID represents a match state. <a href="../../automaton/trait.Automaton.html#tymethod.is_match">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.is_start" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#265-268">source</a><a href="#method.is_start" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.is_start" class="fn">is_start</a>(&amp;self, sid: <a class="struct" href="../../automaton/struct.StateID.html" title="struct aho_corasick::automaton::StateID">StateID</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.bool.html">bool</a></h4></section></summary><div class='docblock'>Returns true if the given ID represents a start state. <a href="../../automaton/trait.Automaton.html#tymethod.is_start">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.match_kind" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#271-273">source</a><a href="#method.match_kind" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.match_kind" class="fn">match_kind</a>(&amp;self) -&gt; <a class="enum" href="../../enum.MatchKind.html" title="enum aho_corasick::MatchKind">MatchKind</a></h4></section></summary><div class='docblock'>Returns the match semantics that this automaton was built with.</div></details><details class="toggle method-toggle" open><summary><section id="method.patterns_len" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#276-278">source</a><a href="#method.patterns_len" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.patterns_len" class="fn">patterns_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the total number of patterns compiled into this automaton.</div></details><details class="toggle method-toggle" open><summary><section id="method.pattern_len" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#281-283">source</a><a href="#method.pattern_len" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.pattern_len" class="fn">pattern_len</a>(&amp;self, pid: <a class="struct" href="../../struct.PatternID.html" title="struct aho_corasick::PatternID">PatternID</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the length of the pattern for the given ID. <a href="../../automaton/trait.Automaton.html#tymethod.pattern_len">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.min_pattern_len" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#286-288">source</a><a href="#method.min_pattern_len" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.min_pattern_len" class="fn">min_pattern_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the length, in bytes, of the shortest pattern in this
automaton.</div></details><details class="toggle method-toggle" open><summary><section id="method.max_pattern_len" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#291-293">source</a><a href="#method.max_pattern_len" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.max_pattern_len" class="fn">max_pattern_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the length, in bytes, of the longest pattern in this automaton.</div></details><details class="toggle method-toggle" open><summary><section id="method.match_len" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#296-298">source</a><a href="#method.match_len" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.match_len" class="fn">match_len</a>(&amp;self, sid: <a class="struct" href="../../automaton/struct.StateID.html" title="struct aho_corasick::automaton::StateID">StateID</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the total number of matches for the given state ID. <a href="../../automaton/trait.Automaton.html#tymethod.match_len">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.match_pattern" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#301-307">source</a><a href="#method.match_pattern" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.match_pattern" class="fn">match_pattern</a>(&amp;self, sid: <a class="struct" href="../../automaton/struct.StateID.html" title="struct aho_corasick::automaton::StateID">StateID</a>, index: <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.usize.html">usize</a>) -&gt; <a class="struct" href="../../struct.PatternID.html" title="struct aho_corasick::PatternID">PatternID</a></h4></section></summary><div class='docblock'>Returns the pattern ID for the match state given by <code>sid</code> at the
<code>index</code> given. <a href="../../automaton/trait.Automaton.html#tymethod.match_pattern">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.memory_usage" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#310-316">source</a><a href="#method.memory_usage" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.memory_usage" class="fn">memory_usage</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the heap memory usage, in bytes, used by this automaton.</div></details><details class="toggle method-toggle" open><summary><section id="method.prefilter" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#319-321">source</a><a href="#method.prefilter" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#tymethod.prefilter" class="fn">prefilter</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;&amp;<a class="struct" href="../../automaton/struct.Prefilter.html" title="struct aho_corasick::automaton::Prefilter">Prefilter</a>&gt;</h4></section></summary><div class='docblock'>Returns a prefilter, if available, that can be used to accelerate
searches for this automaton. <a href="../../automaton/trait.Automaton.html#tymethod.prefilter">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_find" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#354-359">source</a><a href="#method.try_find" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_find" class="fn">try_find</a>(&amp;self, input: &amp;<a class="struct" href="../../struct.Input.html" title="struct aho_corasick::Input">Input</a>&lt;'_&gt;) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/1.77.0/core/option/enum.Option.html" title="enum core::option::Option">Option</a>&lt;<a class="struct" href="../../struct.Match.html" title="struct aho_corasick::Match">Match</a>&gt;, <a class="struct" href="../../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;</h4></section></summary><div class='docblock'>Executes a non-overlapping search with this automaton using the given
configuration. <a href="../../automaton/trait.Automaton.html#method.try_find">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_find_overlapping" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#367-373">source</a><a href="#method.try_find_overlapping" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_find_overlapping" class="fn">try_find_overlapping</a>(
&amp;self,
input: &amp;<a class="struct" href="../../struct.Input.html" title="struct aho_corasick::Input">Input</a>&lt;'_&gt;,
state: &amp;mut <a class="struct" href="../../automaton/struct.OverlappingState.html" title="struct aho_corasick::automaton::OverlappingState">OverlappingState</a>
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;</h4></section></summary><div class='docblock'>Executes a overlapping search with this automaton using the given
configuration. <a href="../../automaton/trait.Automaton.html#method.try_find_overlapping">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_find_iter" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#381-389">source</a><a href="#method.try_find_iter" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_find_iter" class="fn">try_find_iter</a>&lt;'a, 'h&gt;(
&amp;'a self,
input: <a class="struct" href="../../struct.Input.html" title="struct aho_corasick::Input">Input</a>&lt;'h&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../automaton/struct.FindIter.html" title="struct aho_corasick::automaton::FindIter">FindIter</a>&lt;'a, 'h, Self&gt;, <a class="struct" href="../../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Returns an iterator of non-overlapping matches with this automaton
using the given configuration. <a href="../../automaton/trait.Automaton.html#method.try_find_iter">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_find_overlapping_iter" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#397-423">source</a><a href="#method.try_find_overlapping_iter" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_find_overlapping_iter" class="fn">try_find_overlapping_iter</a>&lt;'a, 'h&gt;(
&amp;'a self,
input: <a class="struct" href="../../struct.Input.html" title="struct aho_corasick::Input">Input</a>&lt;'h&gt;
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../automaton/struct.FindOverlappingIter.html" title="struct aho_corasick::automaton::FindOverlappingIter">FindOverlappingIter</a>&lt;'a, 'h, Self&gt;, <a class="struct" href="../../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Returns an iterator of overlapping matches with this automaton
using the given configuration. <a href="../../automaton/trait.Automaton.html#method.try_find_overlapping_iter">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_replace_all" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#433-454">source</a><a href="#method.try_replace_all" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_replace_all" class="fn">try_replace_all</a>&lt;B&gt;(
&amp;self,
haystack: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.str.html">str</a>,
replace_with: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.slice.html">[B]</a>
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.77.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>, <a class="struct" href="../../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
B: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.str.html">str</a>&gt;,</div></h4></section></summary><div class='docblock'>Replaces all non-overlapping matches in <code>haystack</code> with
strings from <code>replace_with</code> depending on the pattern that
matched. The <code>replace_with</code> slice must have length equal to
<code>Automaton::patterns_len</code>. <a href="../../automaton/trait.Automaton.html#method.try_replace_all">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_replace_all_bytes" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#464-485">source</a><a href="#method.try_replace_all_bytes" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_replace_all_bytes" class="fn">try_replace_all_bytes</a>&lt;B&gt;(
&amp;self,
haystack: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>],
replace_with: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.slice.html">[B]</a>
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/1.77.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>&gt;, <a class="struct" href="../../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
B: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;[<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>]&gt;,</div></h4></section></summary><div class='docblock'>Replaces all non-overlapping matches in <code>haystack</code> with
strings from <code>replace_with</code> depending on the pattern that
matched. The <code>replace_with</code> slice must have length equal to
<code>Automaton::patterns_len</code>. <a href="../../automaton/trait.Automaton.html#method.try_replace_all_bytes">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_replace_all_with" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#493-522">source</a><a href="#method.try_replace_all_with" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_replace_all_with" class="fn">try_replace_all_with</a>&lt;F&gt;(
&amp;self,
haystack: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.str.html">str</a>,
dst: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.77.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,
replace_with: F
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
F: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&amp;<a class="struct" href="../../struct.Match.html" title="struct aho_corasick::Match">Match</a>, &amp;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.str.html">str</a>, &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.77.0/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class='docblock'>Replaces all non-overlapping matches in <code>haystack</code> by calling the
<code>replace_with</code> closure given. <a href="../../automaton/trait.Automaton.html#method.try_replace_all_with">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_replace_all_with_bytes" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#530-550">source</a><a href="#method.try_replace_all_with_bytes" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_replace_all_with_bytes" class="fn">try_replace_all_with_bytes</a>&lt;F&gt;(
&amp;self,
haystack: &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>],
dst: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.77.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>&gt;,
replace_with: F
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.unit.html">()</a>, <a class="struct" href="../../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
F: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&amp;<a class="struct" href="../../struct.Match.html" title="struct aho_corasick::Match">Match</a>, &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>], &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.77.0/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>&gt;) -&gt; <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.bool.html">bool</a>,</div></h4></section></summary><div class='docblock'>Replaces all non-overlapping matches in <code>haystack</code> by calling the
<code>replace_with</code> closure given. <a href="../../automaton/trait.Automaton.html#method.try_replace_all_with_bytes">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_stream_find_iter" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#559-567">source</a><a href="#method.try_stream_find_iter" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_stream_find_iter" class="fn">try_stream_find_iter</a>&lt;'a, R: <a class="trait" href="https://doc.rust-lang.org/1.77.0/std/io/trait.Read.html" title="trait std::io::Read">Read</a>&gt;(
&amp;'a self,
rdr: R
) -&gt; <a class="enum" href="https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="../../automaton/struct.StreamFindIter.html" title="struct aho_corasick::automaton::StreamFindIter">StreamFindIter</a>&lt;'a, Self, R&gt;, <a class="struct" href="../../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</div></h4></section></summary><div class='docblock'>Returns an iterator of non-overlapping matches with this automaton
from the stream given. <a href="../../automaton/trait.Automaton.html#method.try_stream_find_iter">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_stream_replace_all" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#578-599">source</a><a href="#method.try_stream_replace_all" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_stream_replace_all" class="fn">try_stream_replace_all</a>&lt;R, W, B&gt;(
&amp;self,
rdr: R,
wtr: W,
replace_with: &amp;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.slice.html">[B]</a>
) -&gt; <a class="type" href="https://doc.rust-lang.org/1.77.0/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.unit.html">()</a>&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
R: <a class="trait" href="https://doc.rust-lang.org/1.77.0/std/io/trait.Read.html" title="trait std::io::Read">Read</a>,
W: <a class="trait" href="https://doc.rust-lang.org/1.77.0/std/io/trait.Write.html" title="trait std::io::Write">Write</a>,
B: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;[<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>]&gt;,</div></h4></section></summary><div class='docblock'>Replaces all non-overlapping matches in <code>rdr</code> with strings from
<code>replace_with</code> depending on the pattern that matched, and writes the
result to <code>wtr</code>. The <code>replace_with</code> slice must have length equal to
<code>Automaton::patterns_len</code>. <a href="../../automaton/trait.Automaton.html#method.try_stream_replace_all">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.try_stream_replace_all_with" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/automaton.rs.html#608-636">source</a><a href="#method.try_stream_replace_all_with" class="anchor">§</a><h4 class="code-header">fn <a href="../../automaton/trait.Automaton.html#method.try_stream_replace_all_with" class="fn">try_stream_replace_all_with</a>&lt;R, W, F&gt;(
&amp;self,
rdr: R,
wtr: W,
replace_with: F
) -&gt; <a class="type" href="https://doc.rust-lang.org/1.77.0/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.unit.html">()</a>&gt;<div class="where">where
Self: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,
R: <a class="trait" href="https://doc.rust-lang.org/1.77.0/std/io/trait.Read.html" title="trait std::io::Read">Read</a>,
W: <a class="trait" href="https://doc.rust-lang.org/1.77.0/std/io/trait.Write.html" title="trait std::io::Write">Write</a>,
F: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title="trait core::ops::function::FnMut">FnMut</a>(&amp;<a class="struct" href="../../struct.Match.html" title="struct aho_corasick::Match">Match</a>, &amp;[<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.u8.html">u8</a>], <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.reference.html">&amp;mut W</a>) -&gt; <a class="type" href="https://doc.rust-lang.org/1.77.0/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.unit.html">()</a>&gt;,</div></h4></section></summary><div class='docblock'>Replaces all non-overlapping matches in <code>rdr</code> by calling the
<code>replace_with</code> closure given and writing the result to <code>wtr</code>. <a href="../../automaton/trait.Automaton.html#method.try_stream_replace_all_with">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Clone-for-NFA" class="impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#90">source</a><a href="#impl-Clone-for-NFA" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#90">source</a><a href="#method.clone" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html#tymethod.clone" class="fn">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="src" href="https://doc.rust-lang.org/1.77.0/src/core/clone.rs.html#169">source</a></span><a href="#method.clone_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html#method.clone_from" class="fn">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.reference.html">&amp;Self</a>)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="toggle implementors-toggle" open><summary><section id="impl-Debug-for-NFA" class="impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#324-380">source</a><a href="#impl-Debug-for-NFA" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a></h3></section></summary><div class="impl-items"><details class="toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl"><a class="src rightside" href="../../../src/aho_corasick/nfa/contiguous.rs.html#325-379">source</a><a href="#method.fmt" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.0/core/fmt/trait.Debug.html#tymethod.fmt" class="fn">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/1.77.0/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/1.77.0/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></h4></section></summary><div class='docblock'>Formats the value using the given formatter. <a href="https://doc.rust-lang.org/1.77.0/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor">§</a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-NFA" class="impl"><a href="#impl-RefUnwindSafe-for-NFA" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a></h3></section><section id="impl-Send-for-NFA" class="impl"><a href="#impl-Send-for-NFA" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a></h3></section><section id="impl-Sync-for-NFA" class="impl"><a href="#impl-Sync-for-NFA" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a></h3></section><section id="impl-Unpin-for-NFA" class="impl"><a href="#impl-Unpin-for-NFA" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a></h3></section><section id="impl-UnwindSafe-for-NFA" class="impl"><a href="#impl-UnwindSafe-for-NFA" class="anchor">§</a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.NFA.html" title="struct aho_corasick::nfa::contiguous::NFA">NFA</a></h3></section></div><h2 id="blanket-implementations" class="section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor">§</a></h2><div id="blanket-implementations-list"><details class="toggle implementors-toggle"><summary><section id="impl-Any-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.77.0/src/core/any.rs.html#140">source</a><a href="#impl-Any-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.77.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.77.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.77.0/src/core/any.rs.html#141">source</a><a href="#method.type_id" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.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.77.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.77.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.77.0/src/core/borrow.rs.html#208">source</a><a href="#impl-Borrow%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.77.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.77.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.77.0/src/core/borrow.rs.html#210">source</a><a href="#method.borrow" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.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.77.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.77.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.77.0/src/core/borrow.rs.html#216">source</a><a href="#impl-BorrowMut%3CT%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.77.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.77.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.77.0/src/core/borrow.rs.html#217">source</a><a href="#method.borrow_mut" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.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.77.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.77.0/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.77.0/src/core/convert/mod.rs.html#764">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.77.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.77.0/src/core/convert/mod.rs.html#767">source</a><a href="#method.from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.0/core/convert/trait.From.html#tymethod.from" class="fn">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.77.0/src/core/convert/mod.rs.html#747-749">source</a><a href="#impl-Into%3CU%3E-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/1.77.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.77.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.77.0/src/core/convert/mod.rs.html#757">source</a><a href="#method.into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.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.77.0/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-ToOwned-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.77.0/src/alloc/borrow.rs.html#83-85">source</a><a href="#impl-ToOwned-for-T" class="anchor">§</a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/1.77.0/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<div class="where">where
T: <a class="trait" href="https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl"><a href="#associatedtype.Owned" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.77.0/alloc/borrow/trait.ToOwned.html#associatedtype.Owned" class="associatedtype">Owned</a> = T</h4></section></summary><div class='docblock'>The resulting type after obtaining ownership.</div></details><details class="toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.77.0/src/alloc/borrow.rs.html#88">source</a><a href="#method.to_owned" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fn">to_owned</a>(&amp;self) -&gt; T</h4></section></summary><div class='docblock'>Creates owned data from borrowed data, usually by cloning. <a href="https://doc.rust-lang.org/1.77.0/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl"><a class="src rightside" href="https://doc.rust-lang.org/1.77.0/src/alloc/borrow.rs.html#92">source</a><a href="#method.clone_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.0/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fn">clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/1.77.0/std/primitive.reference.html">&amp;mut T</a>)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/1.77.0/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-T" class="impl"><a class="src rightside" href="https://doc.rust-lang.org/1.77.0/src/core/convert/mod.rs.html#804-806">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.77.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.77.0/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl"><a href="#associatedtype.Error-1" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.77.0/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/1.77.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.77.0/src/core/convert/mod.rs.html#811">source</a><a href="#method.try_from" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.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.77.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.77.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.77.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.77.0/src/core/convert/mod.rs.html#789-791">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.77.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.77.0/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</div></h3></section></summary><div class="impl-items"><details class="toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl"><a href="#associatedtype.Error" class="anchor">§</a><h4 class="code-header">type <a href="https://doc.rust-lang.org/1.77.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.77.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.77.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.77.0/src/core/convert/mod.rs.html#796">source</a><a href="#method.try_into" class="anchor">§</a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/1.77.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.77.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.77.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.77.0/core/convert/trait.TryFrom.html#associatedtype.Error" title="type core::convert::TryFrom::Error">Error</a>&gt;</h4></section></summary><div class='docblock'>Performs the conversion.</div></details></div></details></div></section></div></main></body></html>