<p>Groups refer to parenthesized expressions inside a regex pattern. They look
like this, where <code>exp</code> is an arbitrary regex:</p>
<ul>
<li><code>(exp)</code> - An unnamed capturing group.</li>
<li><code>(?P<name>exp)</code> or <code>(?<name>exp)</code> - A named capturing group.</li>
<li><code>(?:exp)</code> - A non-capturing group.</li>
<li><code>(?i:exp)</code> - A non-capturing group that sets flags.</li>
</ul>
<p>Only the first two forms are said to be <em>capturing</em>. Capturing
means that the last position at which they match is reportable. The
<ahref="../../util/captures/struct.Captures.html"title="struct regex_automata::util::captures::Captures"><code>Captures</code></a> type provides convenient
access to the match positions of capturing groups, which includes looking
<p>Note that a <ahref="../../hybrid/regex/struct.Regex.html"title="struct regex_automata::hybrid::regex::Regex"><code>hybrid::regex::Regex</code></a> strikes a
</div></details><h2id="implementations"class="section-header">Implementations<ahref="#implementations"class="anchor">§</a></h2><divid="implementations-list"><detailsclass="toggle implementors-toggle"open><summary><sectionid="impl-NFA"class="impl"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#204-1178">source</a><ahref="#impl-NFA"class="anchor">§</a><h3class="code-header">impl <aclass="struct"href="struct.NFA.html"title="struct regex_automata::nfa::thompson::NFA">NFA</a></h3></section></summary><divclass="impl-items"><detailsclass="toggle method-toggle"open><summary><sectionid="method.new"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#226-228">source</a><h4class="code-header">pub fn <ahref="#method.new"class="fn">new</a>(pattern: &<aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.str.html">str</a>) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="struct"href="struct.NFA.html"title="struct regex_automata::nfa::thompson::NFA">NFA</a>, <aclass="struct"href="struct.BuildError.html"title="struct regex_automata::nfa::thompson::BuildError">BuildError</a>></h4></section></summary><divclass="docblock"><p>Parse the given regular expression using a default configuration and
<p>If you want a non-default configuration, then use the NFA
<ahref="struct.Compiler.html"title="struct regex_automata::nfa::thompson::Compiler"><code>Compiler</code></a> with a <ahref="struct.Config.html"title="struct regex_automata::nfa::thompson::Config"><code>Config</code></a>.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.new_many"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#251-253">source</a><h4class="code-header">pub fn <ahref="#method.new_many"class="fn">new_many</a><P: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.AsRef.html"title="trait core::convert::AsRef">AsRef</a><<aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.str.html">str</a>>>(patterns: &<aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.slice.html">[P]</a>) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><<aclass="struct"href="struct.NFA.html"title="struct regex_automata::nfa::thompson::NFA">NFA</a>, <aclass="struct"href="struct.BuildError.html"title="struct regex_automata::nfa::thompson::BuildError">BuildError</a>></h4></section></summary><divclass="docblock"><p>Parse the given regular expressions using a default configuration and
<p>If you want a non-default configuration, then use the NFA
<ahref="struct.Compiler.html"title="struct regex_automata::nfa::thompson::Compiler"><code>Compiler</code></a> with a <ahref="struct.Config.html"title="struct regex_automata::nfa::thompson::Config"><code>Config</code></a>.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.always_match"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#274-297">source</a><h4class="code-header">pub fn <ahref="#method.always_match"class="fn">always_match</a>() -><aclass="struct"href="struct.NFA.html"title="struct regex_automata::nfa::thompson::NFA">NFA</a></h4></section></summary><divclass="docblock"><p>Returns an NFA with a single regex pattern that always matches at every
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.never_match"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#318-324">source</a><h4class="code-header">pub fn <ahref="#method.never_match"class="fn">never_match</a>() -><aclass="struct"href="struct.NFA.html"title="struct regex_automata::nfa::thompson::NFA">NFA</a></h4></section></summary><divclass="docblock"><p>Returns an NFA that never matches at any position.</p>
<p>This is a convenience routine for creating an NFA with zero patterns.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.config"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#347-349">source</a><h4class="code-header">pub fn <ahref="#method.config"class="fn">config</a>() -><aclass="struct"href="struct.Config.html"title="struct regex_automata::nfa::thompson::Config">Config</a></h4></section></summary><divclass="docblock"><p>Return a default configuration for an <code>NFA</code>.</p>
<p>This is a convenience routine to avoid needing to import the <code>Config</code>
type when customizing the construction of an NFA.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.compiler"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#381-383">source</a><h4class="code-header">pub fn <ahref="#method.compiler"class="fn">compiler</a>() -><aclass="struct"href="struct.Compiler.html"title="struct regex_automata::nfa::thompson::Compiler">Compiler</a></h4></section></summary><divclass="docblock"><p>Return a compiler for configuring the construction of an <code>NFA</code>.</p>
<p>This is a convenience routine to avoid needing to import the
<ahref="struct.Compiler.html"title="struct regex_automata::nfa::thompson::Compiler"><code>Compiler</code></a> type in common cases.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.patterns"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#406-411">source</a><h4class="code-header">pub fn <ahref="#method.patterns"class="fn">patterns</a>(&self) -><aclass="struct"href="struct.PatternIter.html"title="struct regex_automata::nfa::thompson::PatternIter">PatternIter</a><'_><ahref="#"class="tooltip"data-notable-ty="PatternIter<'_>">ⓘ</a></h4></section></summary><divclass="docblock"><p>Returns an iterator over all pattern identifiers in this NFA.</p>
<p>Pattern IDs are allocated in sequential order starting from zero,
where the order corresponds to the order of patterns provided to the
<ahref="struct.NFA.html#method.new_many"title="associated function regex_automata::nfa::thompson::NFA::new_many"><code>NFA::new_many</code></a> constructor.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.pattern_len"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#440-442">source</a><h4class="code-header">pub fn <ahref="#method.pattern_len"class="fn">pattern_len</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.usize.html">usize</a></h4></section></summary><divclass="docblock"><p>Returns the total number of regex patterns in this NFA.</p>
<p>This may return zero if the NFA was constructed with no patterns. In
this case, the NFA can never produce a match for any input.</p>
<p>This is guaranteed to be no bigger than <ahref="../../struct.PatternID.html#associatedconstant.LIMIT"title="associated constant regex_automata::PatternID::LIMIT"><code>PatternID::LIMIT</code></a> because
NFA construction will fail if too many patterns are added.</p>
<p>It is always true that <code>nfa.patterns().count() == nfa.pattern_len()</code>.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.start_anchored"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#473-475">source</a><h4class="code-header">pub fn <ahref="#method.start_anchored"class="fn">start_anchored</a>(&self) -><aclass="struct"href="../../util/primitives/struct.StateID.html"title="struct regex_automata::util::primitives::StateID">StateID</a></h4></section></summary><divclass="docblock"><p>Return the state identifier of the initial anchored state of this NFA.</p>
<p>The returned identifier is guaranteed to be a valid index into the
slice returned by <ahref="struct.NFA.html#method.states"title="method regex_automata::nfa::thompson::NFA::states"><code>NFA::states</code></a>, and is also a valid argument to
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.start_unanchored"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#501-503">source</a><h4class="code-header">pub fn <ahref="#method.start_unanchored"class="fn">start_unanchored</a>(&self) -><aclass="struct"href="../../util/primitives/struct.StateID.html"title="struct regex_automata::util::primitives::StateID">StateID</a></h4></section></summary><divclass="docblock"><p>Return the state identifier of the initial unanchored state of this
NFA.</p>
<p>This is equivalent to the identifier returned by
<ahref="struct.NFA.html#method.start_anchored"title="method regex_automata::nfa::thompson::NFA::start_anchored"><code>NFA::start_anchored</code></a> when the NFA has no unanchored starting state.</p>
<p>The returned identifier is guaranteed to be a valid index into the
slice returned by <ahref="struct.NFA.html#method.states"title="method regex_automata::nfa::thompson::NFA::states"><code>NFA::states</code></a>, and is also a valid argument to
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.start_pattern"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#545-547">source</a><h4class="code-header">pub fn <ahref="#method.start_pattern"class="fn">start_pattern</a>(&self, pid: <aclass="struct"href="../../struct.PatternID.html"title="struct regex_automata::PatternID">PatternID</a>) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/option/enum.Option.html"title="enum core::option::Option">Option</a><<aclass="struct"href="../../util/primitives/struct.StateID.html"title="struct regex_automata::util::primitives::StateID">StateID</a>></h4></section></summary><divclass="docblock"><p>Return the state identifier of the initial anchored state for the given
pattern, or <code>None</code> if there is no pattern corresponding to the given
identifier.</p>
<p>If one uses the starting state for a particular pattern, then the only
match that can be returned is for the corresponding pattern.</p>
<p>The returned identifier is guaranteed to be a valid index into the
slice returned by <ahref="struct.NFA.html#method.states"title="method regex_automata::nfa::thompson::NFA::states"><code>NFA::states</code></a>, and is also a valid argument to
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.byte_classes"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#598-600">source</a><h4class="code-header">pub fn <ahref="#method.byte_classes"class="fn">byte_classes</a>(&self) ->&<aclass="struct"href="../../util/alphabet/struct.ByteClasses.html"title="struct regex_automata::util::alphabet::ByteClasses">ByteClasses</a></h4></section></summary><divclass="docblock"><p>Get the byte classes for this NFA.</p>
<p>Byte classes represent a partitioning of this NFA’s alphabet into
equivalence classes. Any two bytes in the same equivalence class are
guaranteed to never discriminate between a match or a non-match. (The
partitioning may not be minimal.)</p>
<p>Byte classes are used internally by this crate when building DFAs.
Namely, among other optimizations, they enable a space optimization
where the DFA’s internal alphabet is defined over the equivalence
classes of bytes instead of all possible byte values. The former is
often quite a bit smaller than the latter, which permits the DFA to use
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.state"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#632-634">source</a><h4class="code-header">pub fn <ahref="#method.state"class="fn">state</a>(&self, id: <aclass="struct"href="../../util/primitives/struct.StateID.html"title="struct regex_automata::util::primitives::StateID">StateID</a>) ->&<aclass="enum"href="enum.State.html"title="enum regex_automata::nfa::thompson::State">State</a></h4></section></summary><divclass="docblock"><p>Return a reference to the NFA state corresponding to the given ID.</p>
<p>This is a convenience routine for <code>nfa.states()[id]</code>.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.states"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#659-661">source</a><h4class="code-header">pub fn <ahref="#method.states"class="fn">states</a>(&self) ->&[<aclass="enum"href="enum.State.html"title="enum regex_automata::nfa::thompson::State">State</a>]</h4></section></summary><divclass="docblock"><p>Returns a slice of all states in this NFA.</p>
<p>The slice returned is indexed by <code>StateID</code>. This provides a convenient
way to access states while following transitions among those states.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.group_info"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#696-698">source</a><h4class="code-header">pub fn <ahref="#method.group_info"class="fn">group_info</a>(&self) ->&<aclass="struct"href="../../util/captures/struct.GroupInfo.html"title="struct regex_automata::util::captures::GroupInfo">GroupInfo</a></h4></section></summary><divclass="docblock"><p>Returns the capturing group info for this NFA.</p>
<p>The <ahref="../../util/captures/struct.GroupInfo.html"title="struct regex_automata::util::captures::GroupInfo"><code>GroupInfo</code></a> provides a way to map to and from capture index
and capture name for each pattern. It also provides a mapping from
each of the capturing groups in every pattern to their corresponding
slot offsets encoded in <ahref="enum.State.html#variant.Capture"title="variant regex_automata::nfa::thompson::State::Capture"><code>State::Capture</code></a> states.</p>
<p>Note that <code>GroupInfo</code> uses reference counting internally, such that
cloning a <code>GroupInfo</code> is very cheap.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.has_capture"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#743-745">source</a><h4class="code-header">pub fn <ahref="#method.has_capture"class="fn">has_capture</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Returns true if and only if this NFA has at least one
<ahref="enum.State.html#variant.Capture"title="variant regex_automata::nfa::thompson::State::Capture"><code>Capture</code></a> in its sequence of states.</p>
<p>This is useful as a way to perform a quick test before attempting
something that does or does not require capture states. For example,
some regex engines (like the PikeVM) require capture states in order to
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.has_empty"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#818-820">source</a><h4class="code-header">pub fn <ahref="#method.has_empty"class="fn">has_empty</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Returns true if and only if this NFA can match the empty string.
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_utf8"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#882-884">source</a><h4class="code-header">pub fn <ahref="#method.is_utf8"class="fn">is_utf8</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Whether UTF-8 mode is enabled for this NFA or not.</p>
<p>When UTF-8 mode is enabled, all matches reported by a regex engine
derived from this NFA are guaranteed to correspond to spans of valid
UTF-8. This includes zero-width matches. For example, the regex engine
must guarantee that the empty regex will not match at the positions
between code units in the UTF-8 encoding of a single codepoint.</p>
<p>See <ahref="struct.Config.html#method.utf8"title="method regex_automata::nfa::thompson::Config::utf8"><code>Config::utf8</code></a> for more information.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_reverse"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#908-910">source</a><h4class="code-header">pub fn <ahref="#method.is_reverse"class="fn">is_reverse</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Returns true when this NFA is meant to be matched in reverse.</p>
<p>Generally speaking, when this is true, it means the NFA is supposed to
be used in conjunction with moving backwards through the haystack. That
is, from a higher memory address to a lower memory address.</p>
<p>It is often the case that lower level routines dealing with an NFA
don’t need to care about whether it is “meant” to be matched in reverse
or not. However, there are some specific cases where it matters. For
example, the implementation of CRLF-aware <code>^</code> and <code>$</code> line anchors
needs to know whether the search is in the forward or reverse
direction. In the forward direction, neither <code>^</code> nor <code>$</code> should match
when a <code>\r</code> has been seen previously and a <code>\n</code> is next. However, in
the reverse direction, neither <code>^</code> nor <code>$</code> should match when a <code>\n</code>
has been seen previously and a <code>\r</code> is next. This fundamentally changes
how the state machine is constructed, and thus needs to be altered
based on the direction of the search.</p>
<p>This is automatically set when using a <ahref="struct.Compiler.html"title="struct regex_automata::nfa::thompson::Compiler"><code>Compiler</code></a> with a configuration
where <ahref="struct.Config.html#method.reverse"title="method regex_automata::nfa::thompson::Config::reverse"><code>Config::reverse</code></a> is enabled. If you’re building your own NFA
by hand via a <ahref="struct.Builder.html"title="struct regex_automata::nfa::thompson::Builder"><code>Builder</code></a></p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.is_always_start_anchored"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#964-966">source</a><h4class="code-header">pub fn <ahref="#method.is_always_start_anchored"class="fn">is_always_start_anchored</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.bool.html">bool</a></h4></section></summary><divclass="docblock"><p>Returns true if and only if all starting states for this NFA correspond
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.look_matcher"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#1013-1015">source</a><h4class="code-header">pub fn <ahref="#method.look_matcher"class="fn">look_matcher</a>(&self) ->&<aclass="struct"href="../../util/look/struct.LookMatcher.html"title="struct regex_automata::util::look::LookMatcher">LookMatcher</a></h4></section></summary><divclass="docblock"><p>Returns the look-around matcher associated with this NFA.</p>
<p>A look-around matcher determines how to match look-around assertions.
In particular, some assertions are configurable. For example, the
<code>(?m:^)</code> and <code>(?m:$)</code> assertions can have their line terminator changed
from the default of <code>\n</code> to any other byte.</p>
<p>If the NFA was built using a <ahref="struct.Compiler.html"title="struct regex_automata::nfa::thompson::Compiler"><code>Compiler</code></a>, then this matcher
can be set via the <ahref="struct.Config.html#method.look_matcher"title="method regex_automata::nfa::thompson::Config::look_matcher"><code>Config::look_matcher</code></a> configuration
knob. Otherwise, if you’ve built an NFA by hand, it is set via
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.look_set_any"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#1059-1061">source</a><h4class="code-header">pub fn <ahref="#method.look_set_any"class="fn">look_set_any</a>(&self) -><aclass="struct"href="../../util/look/struct.LookSet.html"title="struct regex_automata::util::look::LookSet">LookSet</a></h4></section></summary><divclass="docblock"><p>Returns the union of all look-around assertions used throughout this
NFA. When the returned set is empty, it implies that the NFA has no
look-around assertions and thus zero conditional epsilon transitions.</p>
<p>This is useful in some cases enabling optimizations. It is not
unusual, for example, for optimizations to be of the form, “for any
regex with zero conditional epsilon transitions, do …” where “…”
is some kind of optimization.</p>
<p>This isn’t only helpful for optimizations either. Sometimes look-around
assertions are difficult to support. For example, many of the DFAs in
this crate don’t support Unicode word boundaries or handle them using
heuristics. Handling that correctly typically requires some kind of
cheap check of whether the NFA has a Unicode word boundary in the first
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.look_set_prefix_any"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#1099-1101">source</a><h4class="code-header">pub fn <ahref="#method.look_set_prefix_any"class="fn">look_set_prefix_any</a>(&self) -><aclass="struct"href="../../util/look/struct.LookSet.html"title="struct regex_automata::util::look::LookSet">LookSet</a></h4></section></summary><divclass="docblock"><p>Returns the union of all prefix look-around assertions for every
pattern in this NFA. When the returned set is empty, it implies none of
the patterns require moving through a conditional epsilon transition
before inspecting the first byte in the haystack.</p>
<p>This can be useful for determining what kinds of assertions need to be
satisfied at the beginning of a search. For example, typically DFAs
in this crate will build a distinct starting state for each possible
starting configuration that might result in look-around assertions
being satisfied differently. However, if the set returned here is
empty, then you know that the start state is invariant because there
are no conditional epsilon transitions to consider.</p>
</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.memory_usage"class="method"><aclass="src rightside"href="../../../src/regex_automata/nfa/thompson/nfa.rs.html#1169-1177">source</a><h4class="code-header">pub fn <ahref="#method.memory_usage"class="fn">memory_usage</a>(&self) -><aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.usize.html">usize</a></h4></section></summary><divclass="docblock"><p>Returns the memory usage, in bytes, of this NFA.</p>
<code><ahref="https://doc.rust-lang.org/1.77.1/core/convert/trait.From.html"title="trait core::convert::From">From</a><T> for U</code> chooses to do.</p>
</div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-ToOwned-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/alloc/borrow.rs.html#83-85">source</a><ahref="#impl-ToOwned-for-T"class="anchor">§</a><h3class="code-header">impl<T><aclass="trait"href="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html"title="trait alloc::borrow::ToOwned">ToOwned</a> for T<divclass="where">where
T: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/clone/trait.Clone.html"title="trait core::clone::Clone">Clone</a>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle"open><summary><sectionid="associatedtype.Owned"class="associatedtype trait-impl"><ahref="#associatedtype.Owned"class="anchor">§</a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html#associatedtype.Owned"class="associatedtype">Owned</a> = T</h4></section></summary><divclass='docblock'>The resulting type after obtaining ownership.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.to_owned"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/alloc/borrow.rs.html#88">source</a><ahref="#method.to_owned"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html#tymethod.to_owned"class="fn">to_owned</a>(&self) -> T</h4></section></summary><divclass='docblock'>Creates owned data from borrowed data, usually by cloning. <ahref="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html#tymethod.to_owned">Read more</a></div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.clone_into"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/alloc/borrow.rs.html#92">source</a><ahref="#method.clone_into"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html#method.clone_into"class="fn">clone_into</a>(&self, target: <aclass="primitive"href="https://doc.rust-lang.org/1.77.1/std/primitive.reference.html">&mut T</a>)</h4></section></summary><divclass='docblock'>Uses borrowed data to replace owned data, usually by cloning. <ahref="https://doc.rust-lang.org/1.77.1/alloc/borrow/trait.ToOwned.html#method.clone_into">Read more</a></div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-TryFrom%3CU%3E-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/convert/mod.rs.html#804-806">source</a><ahref="#impl-TryFrom%3CU%3E-for-T"class="anchor">§</a><h3class="code-header">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U> for T<divclass="where">where
U: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.Into.html"title="trait core::convert::Into">Into</a><T>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle"open><summary><sectionid="associatedtype.Error-1"class="associatedtype trait-impl"><ahref="#associatedtype.Error-1"class="anchor">§</a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html#associatedtype.Error"class="associatedtype">Error</a> = <aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/convert/enum.Infallible.html"title="enum core::convert::Infallible">Infallible</a></h4></section></summary><divclass='docblock'>The type returned in the event of a conversion error.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.try_from"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/convert/mod.rs.html#811">source</a><ahref="#method.try_from"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html#tymethod.try_from"class="fn">try_from</a>(value: U) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><T, <T as <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><U>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><divclass='docblock'>Performs the conversion.</div></details></div></details><detailsclass="toggle implementors-toggle"><summary><sectionid="impl-TryInto%3CU%3E-for-T"class="impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/convert/mod.rs.html#789-791">source</a><ahref="#impl-TryInto%3CU%3E-for-T"class="anchor">§</a><h3class="code-header">impl<T, U><aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryInto.html"title="trait core::convert::TryInto">TryInto</a><U> for T<divclass="where">where
U: <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>,</div></h3></section></summary><divclass="impl-items"><detailsclass="toggle"open><summary><sectionid="associatedtype.Error"class="associatedtype trait-impl"><ahref="#associatedtype.Error"class="anchor">§</a><h4class="code-header">type <ahref="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryInto.html#associatedtype.Error"class="associatedtype">Error</a> = <U as <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a></h4></section></summary><divclass='docblock'>The type returned in the event of a conversion error.</div></details><detailsclass="toggle method-toggle"open><summary><sectionid="method.try_into"class="method trait-impl"><aclass="src rightside"href="https://doc.rust-lang.org/1.77.1/src/core/convert/mod.rs.html#796">source</a><ahref="#method.try_into"class="anchor">§</a><h4class="code-header">fn <ahref="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryInto.html#tymethod.try_into"class="fn">try_into</a>(self) -><aclass="enum"href="https://doc.rust-lang.org/1.77.1/core/result/enum.Result.html"title="enum core::result::Result">Result</a><U, <U as <aclass="trait"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html"title="trait core::convert::TryFrom">TryFrom</a><T>>::<aclass="associatedtype"href="https://doc.rust-lang.org/1.77.1/core/convert/trait.TryFrom.html#associatedtype.Error"title="type core::convert::TryFrom::Error">Error</a>></h4></section></summary><divclass='docblock'>Performs the conversion.</div></details></div></details></div><scripttype="text/json"id="notable-traits-data">{"PatternIter<'_>":"<h3>Notable traits for <code><a class=\"struct\" href=\"struct.PatternIter.html\" title=\"struct regex_automata::nfa::thompson::PatternIter\">PatternIter</a><'a></code></h3><pre><code><div class=\"where\">impl<'a> <a class=\"trait\" href=\"https://doc.rust-lang.org/1.77.1/core/iter/traits/iterator/trait.Iterator.html\" title=\"trait core::iter::traits::iterator::Iterator\">Iterator</a> for <a class=\"struct\" href=\"struct.PatternIter.html\" title=\"struct regex_automata::nfa::thompson::PatternIter\">PatternIter</a><'a></div><div class=\"where\"> type <a href=\"https://doc.rust-lang.org/1.77.1/core/iter/traits/iterator/trait.Iterator.html#associatedtype.Item\" class=\"associatedtype\">Item</a> = <a class=\"struct\" href=\"../../struct.PatternID.html\" title=\"struct regex_automata::PatternID\">PatternID</a>;</div>"}</script></section></div></main></body></html>