blob: 4704d7c6dbf7954f82550fb3870915e2395583f6 [file] [log] [blame]
<!DOCTYPE html><html lang="en"><head><meta charset="utf-8"><meta name="viewport" content="width=device-width, initial-scale=1.0"><meta name="generator" content="rustdoc"><meta name="description" content="A DFA implementation of Aho-Corasick."><meta name="keywords" content="rust, rustlang, rust-lang, DFA"><title>DFA in aho_corasick::dfa - Rust</title><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Regular.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../FiraSans-Medium.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Regular.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceSerif4-Bold.ttf.woff2"><link rel="preload" as="font" type="font/woff2" crossorigin href="../../SourceCodePro-Semibold.ttf.woff2"><link rel="stylesheet" href="../../normalize.css"><link rel="stylesheet" href="../../rustdoc.css" id="mainThemeStyle"><link rel="stylesheet" href="../../ayu.css" disabled><link rel="stylesheet" href="../../dark.css" disabled><link rel="stylesheet" href="../../light.css" id="themeStyle"><script id="default-settings" ></script><script src="../../storage.js"></script><script defer src="sidebar-items.js"></script><script defer src="../../main.js"></script><noscript><link rel="stylesheet" href="../../noscript.css"></noscript><link rel="alternate icon" type="image/png" href="../../favicon-16x16.png"><link rel="alternate icon" type="image/png" href="../../favicon-32x32.png"><link rel="icon" type="image/svg+xml" href="../../favicon.svg"></head><body class="rustdoc 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">&#9776;</button><a class="sidebar-logo" href="../../aho_corasick/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2></h2></nav><nav class="sidebar"><a class="sidebar-logo" href="../../aho_corasick/index.html"><div class="logo-container"><img class="rust-logo" src="../../rust-logo.svg" alt="logo"></div></a><h2 class="location"><a href="#">DFA</a></h2><div class="sidebar-elems"><section><h3><a href="#implementations">Methods</a></h3><ul class="block"><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"><li><a href="#impl-Automaton-for-DFA">Automaton</a></li><li><a href="#impl-Clone-for-DFA">Clone</a></li><li><a href="#impl-Debug-for-DFA">Debug</a></li></ul><h3><a href="#synthetic-implementations">Auto Trait Implementations</a></h3><ul class="block"><li><a href="#impl-RefUnwindSafe-for-DFA">RefUnwindSafe</a></li><li><a href="#impl-Send-for-DFA">Send</a></li><li><a href="#impl-Sync-for-DFA">Sync</a></li><li><a href="#impl-Unpin-for-DFA">Unpin</a></li><li><a href="#impl-UnwindSafe-for-DFA">UnwindSafe</a></li></ul><h3><a href="#blanket-implementations">Blanket Implementations</a></h3><ul class="block"><li><a href="#impl-Any-for-DFA">Any</a></li><li><a href="#impl-Borrow%3CT%3E-for-DFA">Borrow&lt;T&gt;</a></li><li><a href="#impl-BorrowMut%3CT%3E-for-DFA">BorrowMut&lt;T&gt;</a></li><li><a href="#impl-From%3CT%3E-for-DFA">From&lt;T&gt;</a></li><li><a href="#impl-Into%3CU%3E-for-DFA">Into&lt;U&gt;</a></li><li><a href="#impl-ToOwned-for-DFA">ToOwned</a></li><li><a href="#impl-TryFrom%3CU%3E-for-DFA">TryFrom&lt;U&gt;</a></li><li><a href="#impl-TryInto%3CU%3E-for-DFA">TryInto&lt;U&gt;</a></li></ul></section><h2><a href="index.html">In aho_corasick::dfa</a></h2></div></nav><main><div class="width-limiter"><nav class="sub"><form class="search-form"><div class="search-container"><span></span><input class="search-input" name="search" autocomplete="off" spellcheck="false" placeholder="Click or press ‘S’ to search, ‘?’ for more options…" type="search"><div id="help-button" title="help" tabindex="-1"><a href="../../help.html">?</a></div><div id="settings-menu" tabindex="-1"><a href="../../settings.html" title="settings"><img width="22" height="22" alt="Change settings" src="../../wheel.svg"></a></div></div></form></nav><section id="main-content" class="content"><div class="main-heading"><h1 class="fqn">Struct <a href="../index.html">aho_corasick</a>::<wbr><a href="index.html">dfa</a>::<wbr><a class="struct" href="#">DFA</a><button id="copy-path" onclick="copy_path(this)" title="Copy item path to clipboard"><img src="../../clipboard.svg" width="19" height="18" alt="Copy item path"></button></h1><span class="out-of-band"><a class="srclink" href="../../src/aho_corasick/dfa.rs.html#91-138">source</a> · <a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">[<span class="inner">&#x2212;</span>]</a></span></div><div class="item-decl"><pre class="rust struct"><code>pub struct DFA { /* private fields */ }</code></pre></div><details class="rustdoc-toggle top-doc" open><summary class="hideme"><span>Expand description</span></summary><div class="docblock"><p>A DFA implementation of Aho-Corasick.</p>
<p>When possible, prefer using <a href="../struct.AhoCorasick.html"><code>AhoCorasick</code></a> instead of
this type directly. Using a <code>DFA</code> directly is typically only necessary when
one needs access to the <a href="../automaton/trait.Automaton.html" title="Automaton"><code>Automaton</code></a> trait implementation.</p>
<p>This DFA can only be built by first constructing a <a href="../nfa/noncontiguous/struct.NFA.html" title="noncontiguous::NFA"><code>noncontiguous::NFA</code></a>.
Both <a href="struct.DFA.html#method.new" title="DFA::new"><code>DFA::new</code></a> and <a href="struct.Builder.html#method.build" title="Builder::build"><code>Builder::build</code></a> do this for you automatically, but
<a href="struct.Builder.html#method.build_from_noncontiguous" title="Builder::build_from_noncontiguous"><code>Builder::build_from_noncontiguous</code></a> permits doing it explicitly.</p>
<p>A DFA provides the best possible search performance (in this crate) via two
mechanisms:</p>
<ul>
<li>All states use a dense representation for their transitions.</li>
<li>All failure transitions are pre-computed such that they are never
explicitly handled at search time.</li>
</ul>
<p>These two facts combined mean that every state transition is performed
using a constant number of instructions. However, this comes at
great cost. The memory usage of a DFA can be quite exorbitant.
It is potentially multiple orders of magnitude greater than a
<a href="../nfa/contiguous/struct.NFA.html"><code>contiguous::NFA</code></a> for example. In exchange,
a DFA will typically have better search speed than a <code>contiguous::NFA</code>, but
not by orders of magnitude.</p>
<p>Unless you have a small number of patterns or memory usage is not a concern
and search performance is critical, a DFA is usually not the best choice.</p>
<p>Moreover, unlike the NFAs in this crate, it is costly for a DFA to
support for anchored and unanchored search configurations. Namely,
since failure transitions are pre-computed, supporting both anchored
and unanchored searches requires a duplication of the transition table,
making the memory usage of such a DFA ever bigger. (The NFAs in this crate
unconditionally support both anchored and unanchored searches because there
is essentially no added cost for doing so.) It is for this reason that
a DFA’s support for anchored and unanchored searches can be configured
via <a href="struct.Builder.html#method.start_kind" title="Builder::start_kind"><code>Builder::start_kind</code></a>. By default, a DFA only supports unanchored
searches.</p>
<h2 id="example"><a href="#example">Example</a></h2>
<p>This example shows how to build an <code>DFA</code> directly and use it to execute
<a href="../automaton/trait.Automaton.html#method.try_find" title="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,
dfa::DFA,
Input, Match,
};
<span class="kw">let </span>patterns = <span class="kw-2">&amp;</span>[<span class="string">&quot;b&quot;</span>, <span class="string">&quot;abc&quot;</span>, <span class="string">&quot;abcd&quot;</span>];
<span class="kw">let </span>haystack = <span class="string">&quot;abcd&quot;</span>;
<span class="kw">let </span>nfa = DFA::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="Automaton"><code>Automaton</code></a> documentation for an example.</p>
</div></details><h2 id="implementations" class="small-section-header">Implementations<a href="#implementations" class="anchor"></a></h2><div id="implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-DFA" class="impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#140-158">source</a><a href="#impl-DFA" class="anchor"></a><h3 class="code-header">impl <a class="struct" href="struct.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.new" class="method has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#144-150">source</a><h4 class="code-header">pub fn <a href="#method.new" class="fnname">new</a>&lt;I, P&gt;(patterns: I) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="struct.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a>, <a class="struct" href="../struct.BuildError.html" title="struct aho_corasick::BuildError">BuildError</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;I: <a class="trait" href="https://doc.rust-lang.org/nightly/core/iter/traits/collect/trait.IntoIterator.html" title="trait core::iter::traits::collect::IntoIterator">IntoIterator</a>&lt;Item = P&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;P: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;,</span></h4></section></summary><div class="docblock"><p>Create a new Aho-Corasick DFA using the default configuration.</p>
<p>Use a <a href="struct.Builder.html" title="Builder"><code>Builder</code></a> if you want to change the configuration.</p>
</div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.builder" class="method has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#155-157">source</a><h4 class="code-header">pub fn <a href="#method.builder" class="fnname">builder</a>() -&gt; <a class="struct" href="struct.Builder.html" title="struct aho_corasick::dfa::Builder">Builder</a></h4></section></summary><div class="docblock"><p>A convenience method for returning a new Aho-Corasick DFA builder.</p>
<p>This usually permits one to just import the <code>DFA</code> type.</p>
</div></details></div></details></div><h2 id="trait-implementations" class="small-section-header">Trait Implementations<a href="#trait-implementations" class="anchor"></a></h2><div id="trait-implementations-list"><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Automaton-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#190-303">source</a><a href="#impl-Automaton-for-DFA" 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.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.start_state" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#192-215">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="fnname">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/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.next_state" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#218-226">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="fnname">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/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.is_special" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#229-231">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="fnname">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/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.is_dead" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#234-236">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="fnname">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/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.is_match" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#239-241">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="fnname">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/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.is_start" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#244-247">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="fnname">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/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.match_kind" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#250-252">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="fnname">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="rustdoc-toggle method-toggle" open><summary><section id="method.patterns_len" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#255-257">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="fnname">patterns_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.pattern_len" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#260-262">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="fnname">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/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.min_pattern_len" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#265-267">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="fnname">min_pattern_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></h4></section></summary><div class='docblock'>Returns the length, in bytes, of the shortest pattern in this
automaton. <a href="../automaton/trait.Automaton.html#tymethod.min_pattern_len">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.max_pattern_len" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#270-272">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="fnname">max_pattern_len</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.match_len" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#275-279">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="fnname">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/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.match_pattern" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#282-286">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="fnname">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/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.memory_usage" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#289-297">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="fnname">memory_usage</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.prefilter" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#300-302">source</a><a href="#method.prefilter" class="anchor"></a><h4 class="code-header">fn <a href="../automaton/trait.Automaton.html#tymethod.prefilter" class="fnname">prefilter</a>(&amp;self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.try_find" class="method trait-impl has-srclink"><a class="srclink 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="fnname">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/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="enum" href="https://doc.rust-lang.org/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.try_find_overlapping" class="method trait-impl has-srclink"><a class="srclink 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="fnname">try_find_overlapping</a>(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;input: &amp;<a class="struct" href="../struct.Input.html" title="struct aho_corasick::Input">Input</a>&lt;'_&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;state: &amp;mut <a class="struct" href="../automaton/struct.OverlappingState.html" title="struct aho_corasick::automaton::OverlappingState">OverlappingState</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.try_find_iter" class="method trait-impl has-srclink"><a class="srclink 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="fnname">try_find_iter</a>&lt;'a, 'h&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a self,<br>&nbsp;&nbsp;&nbsp;&nbsp;input: <a class="struct" href="../struct.Input.html" title="struct aho_corasick::Input">Input</a>&lt;'h&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/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;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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="rustdoc-toggle method-toggle" open><summary><section id="method.try_find_overlapping_iter" class="method trait-impl has-srclink"><a class="srclink 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="fnname">try_find_overlapping_iter</a>&lt;'a, 'h&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a self,<br>&nbsp;&nbsp;&nbsp;&nbsp;input: <a class="struct" href="../struct.Input.html" title="struct aho_corasick::Input">Input</a>&lt;'h&gt;<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/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;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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="rustdoc-toggle method-toggle" open><summary><section id="method.try_replace_all" class="method trait-impl has-srclink"><a class="srclink 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="fnname">try_replace_all</a>&lt;B&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;haystack: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;replace_with: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[B]</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/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;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>&gt;,</span></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="rustdoc-toggle method-toggle" open><summary><section id="method.try_replace_all_bytes" class="method trait-impl has-srclink"><a class="srclink 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="fnname">try_replace_all_bytes</a>&lt;B&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;haystack: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],<br>&nbsp;&nbsp;&nbsp;&nbsp;replace_with: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[B]</a><br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;, <a class="struct" href="../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;,</span></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="rustdoc-toggle method-toggle" open><summary><section id="method.try_replace_all_with" class="method trait-impl has-srclink"><a class="srclink 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="fnname">try_replace_all_with</a>&lt;F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;haystack: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.str.html">str</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;dst: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;replace_with: F<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/std/primitive.str.html">str</a>, &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/string/struct.String.html" title="struct alloc::string::String">String</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</span></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="rustdoc-toggle method-toggle" open><summary><section id="method.try_replace_all_with_bytes" class="method trait-impl has-srclink"><a class="srclink 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="fnname">try_replace_all_with_bytes</a>&lt;F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;haystack: &amp;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>],<br>&nbsp;&nbsp;&nbsp;&nbsp;dst: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;,<br>&nbsp;&nbsp;&nbsp;&nbsp;replace_with: F<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/core/result/enum.Result.html" title="enum core::result::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>, <a class="struct" href="../struct.MatchError.html" title="struct aho_corasick::MatchError">MatchError</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/std/primitive.u8.html">u8</a>], &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/alloc/vec/struct.Vec.html" title="struct alloc::vec::Vec">Vec</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>&gt;) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a>,</span></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="rustdoc-toggle method-toggle" open><summary><section id="method.try_stream_find_iter" class="method trait-impl has-srclink"><a class="srclink 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="fnname">try_stream_find_iter</a>&lt;'a, R:&nbsp;<a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a>&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;'a self,<br>&nbsp;&nbsp;&nbsp;&nbsp;rdr: R<br>) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/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;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></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="rustdoc-toggle method-toggle" open><summary><section id="method.try_stream_replace_all" class="method trait-impl has-srclink"><a class="srclink 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="fnname">try_stream_replace_all</a>&lt;R, W, B&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;rdr: R,<br>&nbsp;&nbsp;&nbsp;&nbsp;wtr: W,<br>&nbsp;&nbsp;&nbsp;&nbsp;replace_with: &amp;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">[B]</a><br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;W: <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;B: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.AsRef.html" title="trait core::convert::AsRef">AsRef</a>&lt;[<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.u8.html">u8</a>]&gt;,</span></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="rustdoc-toggle method-toggle" open><summary><section id="method.try_stream_replace_all_with" class="method trait-impl has-srclink"><a class="srclink 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="fnname">try_stream_replace_all_with</a>&lt;R, W, F&gt;(<br>&nbsp;&nbsp;&nbsp;&nbsp;&amp;self,<br>&nbsp;&nbsp;&nbsp;&nbsp;rdr: R,<br>&nbsp;&nbsp;&nbsp;&nbsp;wtr: W,<br>&nbsp;&nbsp;&nbsp;&nbsp;replace_with: F<br>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;Self: <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;R: <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;W: <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a>,<br>&nbsp;&nbsp;&nbsp;&nbsp;F: <a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/std/primitive.u8.html">u8</a>], <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>W) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/std/io/error/type.Result.html" title="type std::io::error::Result">Result</a>&lt;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.unit.html">()</a>&gt;,</span></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="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Clone-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#90">source</a><a href="#impl-Clone-for-DFA" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a> for <a class="struct" href="struct.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#90">source</a><a href="#method.clone" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone" class="fnname">clone</a>(&amp;self) -&gt; <a class="struct" href="struct.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a></h4></section></summary><div class='docblock'>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="Stable since Rust version 1.0.0">1.0.0</span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/clone.rs.html#132-134">source</a></span><a href="#method.clone_from" class="anchor"></a><h4 class="code-header">const fn <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from" class="fnname">clone_from</a>(&amp;mut self, source: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>Self)</h4></section></summary><div class='docblock'>Performs copy-assignment from <code>source</code>. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#method.clone_from">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle" open><summary><section id="impl-Debug-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#305-381">source</a><a href="#impl-Debug-for-DFA" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html" title="trait core::fmt::Debug">Debug</a> for <a class="struct" href="struct.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.fmt" class="method trait-impl has-srclink"><a class="srclink rightside" href="../../src/aho_corasick/dfa.rs.html#306-380">source</a><a href="#method.fmt" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/fmt/trait.Debug.html#tymethod.fmt" class="fnname">fmt</a>(&amp;self, f: &amp;mut <a class="struct" href="https://doc.rust-lang.org/nightly/core/fmt/struct.Formatter.html" title="struct core::fmt::Formatter">Formatter</a>&lt;'_&gt;) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/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/nightly/core/fmt/trait.Debug.html#tymethod.fmt">Read more</a></div></details></div></details></div><h2 id="synthetic-implementations" class="small-section-header">Auto Trait Implementations<a href="#synthetic-implementations" class="anchor"></a></h2><div id="synthetic-implementations-list"><section id="impl-RefUnwindSafe-for-DFA" class="impl has-srclink"><a href="#impl-RefUnwindSafe-for-DFA" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.RefUnwindSafe.html" title="trait core::panic::unwind_safe::RefUnwindSafe">RefUnwindSafe</a> for <a class="struct" href="struct.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a></h3></section><section id="impl-Send-for-DFA" class="impl has-srclink"><a href="#impl-Send-for-DFA" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Send.html" title="trait core::marker::Send">Send</a> for <a class="struct" href="struct.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a></h3></section><section id="impl-Sync-for-DFA" class="impl has-srclink"><a href="#impl-Sync-for-DFA" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sync.html" title="trait core::marker::Sync">Sync</a> for <a class="struct" href="struct.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a></h3></section><section id="impl-Unpin-for-DFA" class="impl has-srclink"><a href="#impl-Unpin-for-DFA" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Unpin.html" title="trait core::marker::Unpin">Unpin</a> for <a class="struct" href="struct.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a></h3></section><section id="impl-UnwindSafe-for-DFA" class="impl has-srclink"><a href="#impl-UnwindSafe-for-DFA" class="anchor"></a><h3 class="code-header">impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/panic/unwind_safe/trait.UnwindSafe.html" title="trait core::panic::unwind_safe::UnwindSafe">UnwindSafe</a> for <a class="struct" href="struct.DFA.html" title="struct aho_corasick::dfa::DFA">DFA</a></h3></section></div><h2 id="blanket-implementations" class="small-section-header">Blanket Implementations<a href="#blanket-implementations" class="anchor"></a></h2><div id="blanket-implementations-list"><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Any-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#200">source</a><a href="#impl-Any-for-DFA" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html" title="trait core::any::Any">Any</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: 'static + ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.type_id" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/any.rs.html#201">source</a><a href="#method.type_id" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/any/trait.Any.html#tymethod.type_id" class="fnname">type_id</a>(&amp;self) -&gt; <a class="struct" href="https://doc.rust-lang.org/nightly/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/nightly/core/any/trait.Any.html#tymethod.type_id">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Borrow%3CT%3E-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#211">source</a><a href="#impl-Borrow%3CT%3E-for-DFA" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html" title="trait core::borrow::Borrow">Borrow</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#213">source</a></span><a href="#method.borrow" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow" class="fnname">borrow</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;</a>T</h4></section></summary><div class='docblock'>Immutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.Borrow.html#tymethod.borrow">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-BorrowMut%3CT%3E-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#220">source</a><a href="#impl-BorrowMut%3CT%3E-for-DFA" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html" title="trait core::borrow::BorrowMut">BorrowMut</a>&lt;T&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: ?<a class="trait" href="https://doc.rust-lang.org/nightly/core/marker/trait.Sized.html" title="trait core::marker::Sized">Sized</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.borrow_mut" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/91522" title="Tracking issue for const_borrow">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/borrow.rs.html#221">source</a></span><a href="#method.borrow_mut" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut" class="fnname">borrow_mut</a>(&amp;mut self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T</h4></section></summary><div class='docblock'>Mutably borrows from an owned value. <a href="https://doc.rust-lang.org/nightly/core/borrow/trait.BorrowMut.html#tymethod.borrow_mut">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-From%3CT%3E-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#733">source</a><a href="#impl-From%3CT%3E-for-DFA" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#736">source</a></span><a href="#method.from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html#tymethod.from" class="fnname">from</a>(t: T) -&gt; T</h4></section></summary><div class="docblock"><p>Returns the argument unchanged.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-Into%3CU%3E-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#717">source</a><a href="#impl-Into%3CU%3E-for-DFA" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.From.html" title="trait core::convert::From">From</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle method-toggle" open><summary><section id="method.into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#725">source</a></span><a href="#method.into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html#tymethod.into" class="fnname">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/nightly/core/convert/trait.From.html" title="From">From</a>&lt;T&gt; for U</code> chooses to do.</p>
</div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-ToOwned-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/alloc/borrow.rs.html#83">source</a><a href="#impl-ToOwned-for-DFA" class="anchor"></a><h3 class="code-header">impl&lt;T&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html" title="trait alloc::borrow::ToOwned">ToOwned</a> for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;T: <a class="trait" href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html" title="trait core::clone::Clone">Clone</a>,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Owned" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Owned" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.to_owned" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/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/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned" class="fnname">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/nightly/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><details class="rustdoc-toggle method-toggle" open><summary><section id="method.clone_into" class="method trait-impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/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/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into" class="fnname">clone_into</a>(&amp;self, target: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.reference.html">&amp;mut </a>T)</h4></section></summary><div class='docblock'>Uses borrowed data to replace owned data, usually by cloning. <a href="https://doc.rust-lang.org/nightly/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><details class="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryFrom%3CU%3E-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#775">source</a><a href="#impl-TryFrom%3CU%3E-for-DFA" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.Into.html" title="trait core::convert::Into">Into</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error-1" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error-1" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#associatedtype.Error" class="associatedtype">Error</a> = <a class="enum" href="https://doc.rust-lang.org/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.try_from" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#781">source</a></span><a href="#method.try_from" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html#tymethod.try_from" class="fnname">try_from</a>(value: U) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/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="rustdoc-toggle implementors-toggle"><summary><section id="impl-TryInto%3CU%3E-for-DFA" class="impl has-srclink"><a class="srclink rightside" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#760">source</a><a href="#impl-TryInto%3CU%3E-for-DFA" class="anchor"></a><h3 class="code-header">impl&lt;T, U&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html" title="trait core::convert::TryInto">TryInto</a>&lt;U&gt; for T<span class="where fmt-newline">where<br>&nbsp;&nbsp;&nbsp;&nbsp;U: <a class="trait" href="https://doc.rust-lang.org/nightly/core/convert/trait.TryFrom.html" title="trait core::convert::TryFrom">TryFrom</a>&lt;T&gt;,</span></h3></section></summary><div class="impl-items"><details class="rustdoc-toggle" open><summary><section id="associatedtype.Error" class="associatedtype trait-impl has-srclink"><a href="#associatedtype.Error" class="anchor"></a><h4 class="code-header">type <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#associatedtype.Error" class="associatedtype">Error</a> = &lt;U as <a class="trait" href="https://doc.rust-lang.org/nightly/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/nightly/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="rustdoc-toggle method-toggle" open><summary><section id="method.try_into" class="method trait-impl has-srclink"><span class="rightside"><span class="since" title="const unstable">const: <a href="https://github.com/rust-lang/rust/issues/88674" title="Tracking issue for const_convert">unstable</a></span> · <a class="srclink" href="https://doc.rust-lang.org/nightly/src/core/convert/mod.rs.html#766">source</a></span><a href="#method.try_into" class="anchor"></a><h4 class="code-header">fn <a href="https://doc.rust-lang.org/nightly/core/convert/trait.TryInto.html#tymethod.try_into" class="fnname">try_into</a>(self) -&gt; <a class="enum" href="https://doc.rust-lang.org/nightly/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/nightly/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/nightly/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><div id="rustdoc-vars" data-root-path="../../" data-current-crate="aho_corasick" data-themes="ayu,dark,light" data-resource-suffix="" data-rustdoc-version="1.66.0-nightly (5c8bff74b 2022-10-21)" ></div></body></html>