mentat/docs/apis/rust/regex_syntax/hir/literal/struct.Literals.html
2018-06-22 12:08:32 +01:00

250 lines
No EOL
47 KiB
HTML
Raw Blame History

This file contains ambiguous Unicode characters

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

<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1.0">
<meta name="generator" content="rustdoc">
<meta name="description" content="API documentation for the Rust `Literals` struct in crate `regex_syntax`.">
<meta name="keywords" content="rust, rustlang, rust-lang, Literals">
<title>regex_syntax::hir::literal::Literals - Rust</title>
<link rel="stylesheet" type="text/css" href="../../../normalize.css">
<link rel="stylesheet" type="text/css" href="../../../rustdoc.css"
id="mainThemeStyle">
<link rel="stylesheet" type="text/css" href="../../../dark.css">
<link rel="stylesheet" type="text/css" href="../../../light.css" id="themeStyle">
<script src="../../../storage.js"></script>
</head>
<body class="rustdoc struct">
<!--[if lte IE 8]>
<div class="warning">
This old browser is unsupported and will most likely display funky
things.
</div>
<![endif]-->
<nav class="sidebar">
<div class="sidebar-menu">&#9776;</div>
<p class='location'>Struct Literals</p><div class="sidebar-elems"><div class="block items"><a class="sidebar-title" href="#methods">Methods</a><div class="sidebar-links"><a href="#method.empty">empty</a><a href="#method.prefixes">prefixes</a><a href="#method.suffixes">suffixes</a><a href="#method.limit_size">limit_size</a><a href="#method.set_limit_size">set_limit_size</a><a href="#method.limit_class">limit_class</a><a href="#method.set_limit_class">set_limit_class</a><a href="#method.literals">literals</a><a href="#method.min_len">min_len</a><a href="#method.all_complete">all_complete</a><a href="#method.any_complete">any_complete</a><a href="#method.contains_empty">contains_empty</a><a href="#method.is_empty">is_empty</a><a href="#method.to_empty">to_empty</a><a href="#method.longest_common_prefix">longest_common_prefix</a><a href="#method.longest_common_suffix">longest_common_suffix</a><a href="#method.trim_suffix">trim_suffix</a><a href="#method.unambiguous_prefixes">unambiguous_prefixes</a><a href="#method.unambiguous_suffixes">unambiguous_suffixes</a><a href="#method.union_prefixes">union_prefixes</a><a href="#method.union_suffixes">union_suffixes</a><a href="#method.union">union</a><a href="#method.cross_product">cross_product</a><a href="#method.cross_add">cross_add</a><a href="#method.add">add</a><a href="#method.add_char_class">add_char_class</a><a href="#method.add_byte_class">add_byte_class</a><a href="#method.cut">cut</a><a href="#method.reverse">reverse</a><a href="#method.clear">clear</a></div><a class="sidebar-title" href="#implementations">Trait Implementations</a><div class="sidebar-links"><a href="#impl-Clone">Clone</a><a href="#impl-Eq">Eq</a><a href="#impl-PartialEq">PartialEq</a><a href="#impl-Debug">Debug</a></div><a class="sidebar-title" href="#synthetic-implementations">Auto Trait Implementations</a><div class="sidebar-links"><a href="#impl-Send">Send</a><a href="#impl-Sync">Sync</a></div></div><p class='location'><a href='../../index.html'>regex_syntax</a>::<wbr><a href='../index.html'>hir</a>::<wbr><a href='index.html'>literal</a></p><script>window.sidebarCurrent = {name: 'Literals', ty: 'struct', relpath: ''};</script><script defer src="sidebar-items.js"></script></div>
</nav>
<div class="theme-picker">
<button id="theme-picker" aria-label="Pick another theme!">
<img src="../../../brush.svg" width="18" alt="Pick another theme!">
</button>
<div id="theme-choices"></div>
</div>
<script src="../../../theme.js"></script>
<nav class="sub">
<form class="search-form js-only">
<div class="search-container">
<input class="search-input" name="search"
autocomplete="off"
placeholder="Click or press S to search, ? for more options…"
type="search">
</div>
</form>
</nav>
<section id='main' class="content"><h1 class='fqn'><span class='in-band'>Struct <a href='../../index.html'>regex_syntax</a>::<wbr><a href='../index.html'>hir</a>::<wbr><a href='index.html'>literal</a>::<wbr><a class="struct" href=''>Literals</a></span><span class='out-of-band'><span id='render-detail'>
<a id="toggle-all-docs" href="javascript:void(0)" title="collapse all docs">
[<span class='inner'>&#x2212;</span>]
</a>
</span><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#45-49' title='goto source code'>[src]</a></span></h1><div class="docblock type-decl"><pre class='rust struct'>pub struct Literals { /* fields omitted */ }</pre></div><div class='docblock'><p>A set of literal byte strings extracted from a regular expression.</p>
<p>Every member of the set is a <code>Literal</code>, which is represented by a
<code>Vec&lt;u8&gt;</code>. (Notably, it may contain invalid UTF-8.) Every member is
said to be either <em>complete</em> or <em>cut</em>. A complete literal means that
it extends until the beginning (or end) of the regular expression. In
some circumstances, this can be used to indicate a match in the regular
expression.</p>
<p>A key aspect of literal extraction is knowing when to stop. It is not
feasible to blindly extract all literals from a regular expression, even if
there are finitely many. For example, the regular expression <code>[0-9]{10}</code>
has <code>10^10</code> distinct literals. For this reason, literal extraction is
bounded to some low number by default using heuristics, but the limits can
be tweaked.</p>
<p><strong>WARNING</strong>: Literal extraction uses stack space proportional to the size
of the <code>Hir</code> expression. At some point, this drawback will be eliminated.
To protect yourself, set a reasonable
<a href="../../struct.ParserBuilder.html#method.nest_limit"><code>nest_limit</code> on your <code>Parser</code></a>.
This is done for you by default.</p>
</div>
<h2 id='methods' class='small-section-header'>
Methods<a href='#methods' class='anchor'></a>
</h2>
<h3 id='impl' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code><a href='#impl' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#61-600' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.empty' class="method"><span id='empty.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.empty' class='fnname'>empty</a>() -&gt; <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#63-69' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns a new empty set of literals using default limits.</p>
</div><h4 id='method.prefixes' class="method"><span id='prefixes.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.prefixes' class='fnname'>prefixes</a>(expr: &amp;<a class="struct" href="../../../regex_syntax/hir/struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a>) -&gt; <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#72-76' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns a set of literal prefixes extracted from the given <code>Hir</code>.</p>
</div><h4 id='method.suffixes' class="method"><span id='suffixes.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.suffixes' class='fnname'>suffixes</a>(expr: &amp;<a class="struct" href="../../../regex_syntax/hir/struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a>) -&gt; <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#79-83' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns a set of literal suffixes extracted from the given <code>Hir</code>.</p>
</div><h4 id='method.limit_size' class="method"><span id='limit_size.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.limit_size' class='fnname'>limit_size</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#86-88' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Get the approximate size limit (in bytes) of this set.</p>
</div><h4 id='method.set_limit_size' class="method"><span id='set_limit_size.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.set_limit_size' class='fnname'>set_limit_size</a>(&amp;mut self, size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; &amp;mut <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#97-100' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Set the approximate size limit (in bytes) of this set.</p>
<p>If extracting a literal would put the set over this limit, then
extraction stops.</p>
<p>The new limits will only apply to additions to this set. Existing
members remain unchanged, even if the set exceeds the new limit.</p>
</div><h4 id='method.limit_class' class="method"><span id='limit_class.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.limit_class' class='fnname'>limit_class</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#103-105' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Get the character class size limit for this set.</p>
</div><h4 id='method.set_limit_class' class="method"><span id='set_limit_class.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.set_limit_class' class='fnname'>set_limit_class</a>(&amp;mut self, size: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; &amp;mut <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#117-120' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Limits the size of character(or byte) classes considered.</p>
<p>A value of <code>0</code> prevents all character classes from being considered.</p>
<p>This limit also applies to case insensitive literals, since each
character in the case insensitive literal is converted to a class, and
then case folded.</p>
<p>The new limits will only apply to additions to this set. Existing
members remain unchanged, even if the set exceeds the new limit.</p>
</div><h4 id='method.literals' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><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.slice.html">]</a></span></div><div class="content hidden"><h3 class="important">Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><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.slice.html">]</a></h3><code class="content"><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><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.slice.html">]</a></span><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><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.slice.html">]</a></span></code></div></div><span id='literals.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.literals' class='fnname'>literals</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><a class="struct" href="../../../regex_syntax/hir/literal/struct.Literal.html" title="struct regex_syntax::hir::literal::Literal">Literal</a><a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">]</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#123-125' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the set of literals as a slice. Its order is unspecified.</p>
</div><h4 id='method.min_len' class="method"><span id='min_len.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.min_len' class='fnname'>min_len</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;<a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#130-140' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the length of the smallest literal.</p>
<p>Returns None is there are no literals in the set.</p>
</div><h4 id='method.all_complete' class="method"><span id='all_complete.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.all_complete' class='fnname'>all_complete</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#143-145' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns true if all members in this set are complete.</p>
</div><h4 id='method.any_complete' class="method"><span id='any_complete.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.any_complete' class='fnname'>any_complete</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#148-150' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns true if any member in this set is complete.</p>
</div><h4 id='method.contains_empty' class="method"><span id='contains_empty.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.contains_empty' class='fnname'>contains_empty</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#153-155' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns true if this set contains an empty literal.</p>
</div><h4 id='method.is_empty' class="method"><span id='is_empty.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.is_empty' class='fnname'>is_empty</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#158-160' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns true if this set is empty or if all of its members is empty.</p>
</div><h4 id='method.to_empty' class="method"><span id='to_empty.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.to_empty' class='fnname'>to_empty</a>(&amp;self) -&gt; <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#163-168' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns a new empty set of literals using this set's limits.</p>
</div><h4 id='method.longest_common_prefix' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><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.slice.html">]</a></span></div><div class="content hidden"><h3 class="important">Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><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.slice.html">]</a></h3><code class="content"><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><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.slice.html">]</a></span><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><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.slice.html">]</a></span></code></div></div><span id='longest_common_prefix.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.longest_common_prefix' class='fnname'>longest_common_prefix</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><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.slice.html">]</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#171-186' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the longest common prefix of all members in this set.</p>
</div><h4 id='method.longest_common_suffix' class="method"><div class="important-traits"><div class='tooltip'><span class='tooltiptext'>Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><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.slice.html">]</a></span></div><div class="content hidden"><h3 class="important">Important traits for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><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.slice.html">]</a></h3><code class="content"><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Read.html" title="trait std::io::Read">Read</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a [</a><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.slice.html">]</a></span><span class="where fmt-newline">impl&lt;'a&gt; <a class="trait" href="https://doc.rust-lang.org/nightly/std/io/trait.Write.html" title="trait std::io::Write">Write</a> for <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;'a mut [</a><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.slice.html">]</a></span></code></div></div><span id='longest_common_suffix.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.longest_common_suffix' class='fnname'>longest_common_suffix</a>(&amp;self) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><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.slice.html">]</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#189-205' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns the longest common suffix of all members in this set.</p>
</div><h4 id='method.trim_suffix' class="method"><span id='trim_suffix.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.trim_suffix' class='fnname'>trim_suffix</a>(&amp;self, num_bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.usize.html">usize</a>) -&gt; <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="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a>&gt;</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#215-229' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns a new set of literals with the given number of bytes trimmed
from the suffix of each literal.</p>
<p>If any literal would be cut out completely by trimming, then None is
returned.</p>
<p>Any duplicates that are created as a result of this transformation are
removed.</p>
</div><h4 id='method.unambiguous_prefixes' class="method"><span id='unambiguous_prefixes.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.unambiguous_prefixes' class='fnname'>unambiguous_prefixes</a>(&amp;self) -&gt; <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#240-297' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns a new set of prefixes of this set of literals that are
guaranteed to be unambiguous.</p>
<p>Any substring match with a member of the set is returned is guaranteed
to never overlap with a substring match of another member of the set
at the same starting position.</p>
<p>Given any two members of the returned set, neither is a substring of
the other.</p>
</div><h4 id='method.unambiguous_suffixes' class="method"><span id='unambiguous_suffixes.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.unambiguous_suffixes' class='fnname'>unambiguous_suffixes</a>(&amp;self) -&gt; <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#308-315' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns a new set of suffixes of this set of literals that are
guaranteed to be unambiguous.</p>
<p>Any substring match with a member of the set is returned is guaranteed
to never overlap with a substring match of another member of the set
at the same ending position.</p>
<p>Given any two members of the returned set, neither is a substring of
the other.</p>
</div><h4 id='method.union_prefixes' class="method"><span id='union_prefixes.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.union_prefixes' class='fnname'>union_prefixes</a>(&amp;mut self, expr: &amp;<a class="struct" href="../../../regex_syntax/hir/struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#326-330' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Unions the prefixes from the given expression to this set.</p>
<p>If prefixes could not be added (for example, this set would exceed its
size limits or the set of prefixes from <code>expr</code> includes the empty
string), then false is returned.</p>
<p>Note that prefix literals extracted from <code>expr</code> are said to be complete
if and only if the literal extends from the beginning of <code>expr</code> to the
end of <code>expr</code>.</p>
</div><h4 id='method.union_suffixes' class="method"><span id='union_suffixes.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.union_suffixes' class='fnname'>union_suffixes</a>(&amp;mut self, expr: &amp;<a class="struct" href="../../../regex_syntax/hir/struct.Hir.html" title="struct regex_syntax::hir::Hir">Hir</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#341-346' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Unions the suffixes from the given expression to this set.</p>
<p>If suffixes could not be added (for example, this set would exceed its
size limits or the set of suffixes from <code>expr</code> includes the empty
string), then false is returned.</p>
<p>Note that prefix literals extracted from <code>expr</code> are said to be complete
if and only if the literal extends from the end of <code>expr</code> to the
beginning of <code>expr</code>.</p>
</div><h4 id='method.union' class="method"><span id='union.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.union' class='fnname'>union</a>(&amp;mut self, lits: <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#353-363' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Unions this set with another set.</p>
<p>If the union would cause the set to exceed its limits, then the union
is skipped and it returns false. Otherwise, if the union succeeds, it
returns true.</p>
</div><h4 id='method.cross_product' class="method"><span id='cross_product.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.cross_product' class='fnname'>cross_product</a>(&amp;mut self, lits: &amp;<a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#372-411' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Extends this set with another set.</p>
<p>The set of literals is extended via a cross product.</p>
<p>If a cross product would cause this set to exceed its limits, then the
cross product is skipped and it returns false. Otherwise, if the cross
product succeeds, it returns true.</p>
</div><h4 id='method.cross_add' class="method"><span id='cross_add.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.cross_add' class='fnname'>cross_add</a>(&amp;mut self, bytes: <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.slice.html">&amp;[</a><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.slice.html">]</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#421-452' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Extends each literal in this set with the bytes given.</p>
<p>If the set is empty, then the given literal is added to the set.</p>
<p>If adding any number of bytes to all members of this set causes a limit
to be exceeded, then no bytes are added and false is returned. If a
prefix of <code>bytes</code> can be fit into this set, then it is used and all
resulting literals are cut.</p>
</div><h4 id='method.add' class="method"><span id='add.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add' class='fnname'>add</a>(&amp;mut self, lit: <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literal.html" title="struct regex_syntax::hir::literal::Literal">Literal</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#458-464' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Adds the given literal to this set.</p>
<p>Returns false if adding this literal would cause the class to be too
big.</p>
</div><h4 id='method.add_char_class' class="method"><span id='add_char_class.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_char_class' class='fnname'>add_char_class</a>(&amp;mut self, cls: &amp;<a class="struct" href="../../../regex_syntax/hir/struct.ClassUnicode.html" title="struct regex_syntax::hir::ClassUnicode">ClassUnicode</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#469-471' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Extends each literal in this set with the character class given.</p>
<p>Returns false if the character class was too big to add.</p>
</div><h4 id='method.add_byte_class' class="method"><span id='add_byte_class.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.add_byte_class' class='fnname'>add_byte_class</a>(&amp;mut self, cls: &amp;<a class="struct" href="../../../regex_syntax/hir/struct.ClassBytes.html" title="struct regex_syntax::hir::ClassBytes">ClassBytes</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#514-532' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Extends each literal in this set with the byte class given.</p>
<p>Returns false if the byte class was too big to add.</p>
</div><h4 id='method.cut' class="method"><span id='cut.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.cut' class='fnname'>cut</a>(&amp;mut self)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#536-540' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Cuts every member of this set. When a member is cut, it can never
be extended.</p>
</div><h4 id='method.reverse' class="method"><span id='reverse.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.reverse' class='fnname'>reverse</a>(&amp;mut self)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#543-547' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Reverses all members in place.</p>
</div><h4 id='method.clear' class="method"><span id='clear.v' class='invisible'><table class='table-display'><tbody><tr><td><code>pub fn <a href='#method.clear' class='fnname'>clear</a>(&amp;mut self)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#550-552' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Clears this set of all members.</p>
</div></div>
<h2 id='implementations' class='small-section-header'>
Trait Implementations<a href='#implementations' class='anchor'></a>
</h2>
<div id='implementations-list'>
<h3 id='impl-Clone' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>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="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code><a href='#impl-Clone' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#44' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.clone' class="method"><span id='clone.v' class='invisible'><table class='table-display'><tbody><tr><td><code>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="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>Returns a copy of the value. <a href="https://doc.rust-lang.org/nightly/core/clone/trait.Clone.html#tymethod.clone">Read more</a></p>
</div><h4 id='method.clone_from' class="method"><span id='clone_from.v' class='invisible'><table class='table-display'><tbody><tr><td><code>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)</code></span></td><td><span class='out-of-band'><div class='ghost'></div><div class='since' title='Stable since Rust version 1.0.0'>1.0.0</div><a class='srclink' href='https://doc.rust-lang.org/nightly/src/core/clone.rs.html#117-119' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>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></p>
</div></div><h3 id='impl-Eq' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.Eq.html" title="trait core::cmp::Eq">Eq</a> for <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code><a href='#impl-Eq' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#44' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'></div><h3 id='impl-PartialEq' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>impl <a class="trait" href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html" title="trait core::cmp::PartialEq">PartialEq</a> for <a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code><a href='#impl-PartialEq' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#44' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.eq' class="method"><span id='eq.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq' class='fnname'>eq</a>(&amp;self, __arg_0: &amp;<a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>This method tests for <code>self</code> and <code>other</code> values to be equal, and is used by <code>==</code>. <a href="https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#tymethod.eq">Read more</a></p>
</div><h4 id='method.ne' class="method"><span id='ne.v' class='invisible'><table class='table-display'><tbody><tr><td><code>fn <a href='https://doc.rust-lang.org/nightly/core/cmp/trait.PartialEq.html#method.ne' class='fnname'>ne</a>(&amp;self, __arg_0: &amp;<a class="struct" href="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a>) -&gt; <a class="primitive" href="https://doc.rust-lang.org/nightly/std/primitive.bool.html">bool</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#44' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>This method tests for <code>!=</code>.</p>
</div></div><h3 id='impl-Debug' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>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="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code><a href='#impl-Debug' class='anchor'></a></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#869-877' title='goto source code'>[src]</a></span></td></tr></tbody></table></h3><div class='impl-items'><h4 id='method.fmt' class="method"><span id='fmt.v' class='invisible'><table class='table-display'><tbody><tr><td><code>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>) -&gt; <a class="type" href="https://doc.rust-lang.org/nightly/core/fmt/type.Result.html" title="type core::fmt::Result">Result</a></code></span></td><td><span class='out-of-band'><div class='ghost'></div><a class='srclink' href='../../../src/regex_syntax/hir/literal/mod.rs.html#870-876' title='goto source code'>[src]</a></td></tr></tbody></table></span></h4><div class='docblock'><p>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></p>
</div></div></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'>
<h3 id='impl-Send' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>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="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code><a href='#impl-Send' class='anchor'></a></span></td><td><span class='out-of-band'></span></td></tr></tbody></table></h3><div class='impl-items'></div><h3 id='impl-Sync' class='impl'><span class='in-band'><table class='table-display'><tbody><tr><td><code>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="../../../regex_syntax/hir/literal/struct.Literals.html" title="struct regex_syntax::hir::literal::Literals">Literals</a></code><a href='#impl-Sync' class='anchor'></a></span></td><td><span class='out-of-band'></span></td></tr></tbody></table></h3><div class='impl-items'></div></div></section>
<section id='search' class="content hidden"></section>
<section class="footer"></section>
<aside id="help" class="hidden">
<div>
<h1 class="hidden">Help</h1>
<div class="shortcuts">
<h2>Keyboard Shortcuts</h2>
<dl>
<dt><kbd>?</kbd></dt>
<dd>Show this help dialog</dd>
<dt><kbd>S</kbd></dt>
<dd>Focus the search field</dd>
<dt><kbd></kbd></dt>
<dd>Move up in search results</dd>
<dt><kbd></kbd></dt>
<dd>Move down in search results</dd>
<dt><kbd></kbd></dt>
<dd>Switch tab</dd>
<dt><kbd>&#9166;</kbd></dt>
<dd>Go to active search result</dd>
<dt><kbd>+</kbd></dt>
<dd>Expand all sections</dd>
<dt><kbd>-</kbd></dt>
<dd>Collapse all sections</dd>
</dl>
</div>
<div class="infos">
<h2>Search Tricks</h2>
<p>
Prefix searches with a type followed by a colon (e.g.
<code>fn:</code>) to restrict the search to a given type.
</p>
<p>
Accepted types are: <code>fn</code>, <code>mod</code>,
<code>struct</code>, <code>enum</code>,
<code>trait</code>, <code>type</code>, <code>macro</code>,
and <code>const</code>.
</p>
<p>
Search functions by type signature (e.g.
<code>vec -> usize</code> or <code>* -> vec</code>)
</p>
</div>
</div>
</aside>
<script>
window.rootPath = "../../../";
window.currentCrate = "regex_syntax";
</script>
<script src="../../../main.js"></script>
<script defer src="../../../search-index.js"></script>
</body>
</html>