<!DOCTYPE html><htmllang="en"><head><metacharset="utf-8"><metaname="viewport"content="width=device-width, initial-scale=1.0"><metaname="generator"content="rustdoc"><metaname="description"content="List of parsers and combinators"><title>winnow::combinator - Rust</title><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/FiraSans-Regular-018c141bf0843ffd.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/FiraSans-Medium-8f9a781e4970d388.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2"><linkrel="preload"as="font"type="font/woff2"crossoriginhref="../../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2"><linkrel="stylesheet"href="../../static.files/normalize-76eba96aa4d2e634.css"><linkrel="stylesheet"href="../../static.files/rustdoc-5bc39a1768837dd0.css"><metaname="rustdoc-vars"data-root-path="../../"data-static-root-path="../../static.files/"data-current-crate="winnow"data-themes=""data-resource-suffix=""data-rustdoc-version="1.77.2 (25ef9e3d8 2024-04-09)"data-channel="1.77.2"data-search-js="search-dd67cee4cfa65049.js"data-settings-js="settings-4313503d2e1961c2.js"><scriptsrc="../../static.files/storage-4c98445ec4002617.js"></script><scriptdefersrc="../sidebar-items.js"></script><scriptdefersrc="../../static.files/main-48f368f3872407c8.js"></script><noscript><linkrel="stylesheet"href="../../static.files/noscript-04d5337699b92874.css"></noscript><linkrel="alternate icon"type="image/png"href="../../static.files/favicon-16x16-8b506e7a72182f1c.png"><linkrel="alternate icon"type="image/png"href="../../static.files/favicon-32x32-422f7d1d52889060.png"><linkrel="icon"type="image/svg+xml"href="../../static.files/favicon-2c020d218678b618.svg"></head><bodyclass="rustdoc mod"><!--[if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif]--><navclass="mobile-topbar"><buttonclass="sidebar-menu-toggle"title="show sidebar"></button></nav><navclass="sidebar"><divclass="sidebar-crate"><h2><ahref="../../winnow/index.html">winnow</a><spanclass="version">0.6.6</span></h2></div><h2class="location"><ahref="#">Module combinator</a></h2><divclass="sidebar-elems"><section><ulclass="block"><li><ahref="#macros">Macros</a></li><li><ahref="#structs">Structs</a></li><li><ahref="#traits">Traits</a></li><li><ahref="#functions">Functions</a></li></ul></section><h2><ahref="../index.html">In crate winnow</a></h2></div></nav><divclass="sidebar-resizer"></div>
<main><divclass="width-limiter"><navclass="sub"><formclass="search-form"><span></span><divid="sidebar-button"tabindex="-1"><ahref="../../winnow/all.html"title="show sidebar"></a></div><inputclass="search-input"name="search"aria-label="Run search in the documentation"autocomplete="off"spellcheck="false"placeholder="Click or press ‘S’ to search, ‘?’ for more options…"type="search"><divid="help-button"tabindex="-1"><ahref="../../help.html"title="help">?</a></div><divid="settings-menu"tabindex="-1"><ahref="../../settings.html"title="settings"><imgwidth="22"height="22"alt="Change settings"src="../../static.files/wheel-7b819b6101059cd0.svg"></a></div></form></nav><sectionid="main-content"class="content"><divclass="main-heading"><h1>Module <ahref="../index.html">winnow</a>::<wbr><aclass="mod"href="#">combinator</a><buttonid="copy-path"title="Copy item path to clipboard"><imgsrc="../../static.files/clipboard-7571035ce49a181d.svg"width="19"height="18"alt="Copy item path"></button></h1><spanclass="out-of-band"><aclass="src"href="../../src/winnow/combinator/mod.rs.html#1-176">source</a> · <buttonid="toggle-all-docs"title="collapse all docs">[<span>−</span>]</button></span></div><detailsclass="toggle top-doc"open><summaryclass="hideme"><span>Expand description</span></summary><divclass="docblock"><h2id="list-of-parsers-and-combinators"><aclass="doc-anchor"href="#list-of-parsers-and-combinators">§</a>List of parsers and combinators</h2>
<p><strong>Note</strong>: this list is meant to provide a nicer way to find a parser than reading through the documentation on docs.rs. Function combinators are organized in module so they are a bit easier to find.</p>
<tr><td><ahref="../token/fn.one_of.html"title="fn winnow::token::one_of"><code>one_of</code></a></td><td><code>one_of(['a', 'b', 'c'])</code></td><td><code>"abc"</code></td><td><code>"bc"</code></td><td><code>Ok('a')</code></td><td>Matches one of the provided <ahref="../stream/trait.ContainsToken.html"title="trait winnow::stream::ContainsToken">set of tokens</a> (works with non ASCII characters too)</td></tr>
<tr><td><ahref="../token/fn.none_of.html"title="fn winnow::token::none_of"><code>none_of</code></a></td><td><code>none_of(['a', 'b', 'c'])</code></td><td><code>"xyab"</code></td><td><code>"yab"</code></td><td><code>Ok('x')</code></td><td>Matches anything but one of the provided <ahref="../stream/trait.ContainsToken.html"title="trait winnow::stream::ContainsToken">set of tokens</a></td></tr>
<tr><td><ahref="../token/fn.literal.html"title="fn winnow::token::literal"><code>literal</code></a></td><td><code>"hello"</code></td><td><code>"hello world"</code></td><td><code>" world"</code></td><td><code>Ok("hello")</code></td><td>Recognizes a specific suite of characters or bytes (see also <ahref="../ascii/struct.Caseless.html"title="struct winnow::ascii::Caseless"><code>Caseless</code></a>)</td></tr>
<tr><td><ahref="../token/fn.take.html"title="fn winnow::token::take"><code>take</code></a></td><td><code>take(4)</code></td><td><code>"hello"</code></td><td><code>"o"</code></td><td><code>Ok("hell")</code></td><td>Takes a specific number of bytes or characters</td></tr>
<tr><td><ahref="../token/fn.take_while.html"title="fn winnow::token::take_while"><code>take_while</code></a></td><td><code>take_while(0.., is_alphabetic)</code></td><td><code>"abc123"</code></td><td><code>"123"</code></td><td><code>Ok("abc")</code></td><td>Returns the longest slice of bytes or characters for which the provided <ahref="../stream/trait.ContainsToken.html"title="trait winnow::stream::ContainsToken">set of tokens</a> matches.</td></tr>
<tr><td><ahref="../token/fn.take_till.html"title="fn winnow::token::take_till"><code>take_till</code></a></td><td><code>take_till(0.., is_alphabetic)</code></td><td><code>"123abc"</code></td><td><code>"abc"</code></td><td><code>Ok("123")</code></td><td>Returns a slice of bytes or characters until the provided <ahref="../stream/trait.ContainsToken.html"title="trait winnow::stream::ContainsToken">set of tokens</a> matches. This is the reverse behaviour from <code>take_while</code>: <code>take_till(f)</code> is equivalent to <code>take_while(0.., \|c\| !f(c))</code></td></tr>
<tr><td><ahref="../token/fn.take_until.html"title="fn winnow::token::take_until"><code>take_until</code></a></td><td><code>take_until(0.., "world")</code></td><td><code>"Hello world"</code></td><td><code>"world"</code></td><td><code>Ok("Hello ")</code></td><td>Returns a slice of bytes or characters until the provided <ahref="../token/fn.literal.html"title="fn winnow::token::literal">literal</a> is found.</td></tr>
<tr><td><ahref="fn.alt.html"title="fn winnow::combinator::alt"><code>alt</code></a></td><td><code>alt(("ab", "cd"))</code></td><td><code>"cdef"</code></td><td><code>"ef"</code></td><td><code>Ok("cd")</code></td><td>Try a list of parsers and return the result of the first successful one</td></tr>
<tr><td><ahref="macro.dispatch.html"title="macro winnow::combinator::dispatch"><code>dispatch</code></a></td><td>-</td><td>-</td><td>-</td><td>-</td><td><code>match</code> for parsers</td></tr>
<tr><td><ahref="fn.permutation.html"title="fn winnow::combinator::permutation"><code>permutation</code></a></td><td><code>permutation(("ab", "cd", "12"))</code></td><td><code>"cd12abc"</code></td><td><code>"c"</code></td><td><code>Ok(("ab", "cd", "12"))</code></td><td>Succeeds when all its child parser have succeeded, whatever the order</td></tr>
<tr><td><ahref="../trait.Parser.html"title="trait winnow::Parser"><code>(...)</code> (tuples)</a></td><td><code>("ab", "XY", take(1))</code></td><td><code>"abXYZ!"</code></td><td><code>"!"</code></td><td><code>Ok(("ab", "XY", "Z"))</code></td><td>Chains parsers and assemble the sub results in a tuple. You can use as many child parsers as you can put elements in a tuple</td></tr>
<tr><td><ahref="fn.repeat.html"title="fn winnow::combinator::repeat"><code>repeat</code></a></td><td><code>repeat(1..=3, "ab")</code></td><td><code>"ababc"</code></td><td><code>"c"</code></td><td><code>Ok(vec!["ab", "ab"])</code></td><td>Applies the parser between m and n times (n included) and returns the list of results in a Vec</td></tr>
<tr><td><ahref="fn.repeat_till.html"title="fn winnow::combinator::repeat_till"><code>repeat_till</code></a></td><td><code>repeat_till(0.., "ab", "ef")</code></td><td><code>"ababefg"</code></td><td><code>"g"</code></td><td><code>Ok((vec!["ab", "ab"], "ef"))</code></td><td>Applies the first parser until the second applies. Returns a tuple containing the list of results from the first in a Vec and the result of the second</td></tr>
<tr><td><ahref="fn.separated.html"title="fn winnow::combinator::separated"><code>separated</code></a></td><td><code>separated(1..=3, "ab", ",")</code></td><td><code>"ab,ab,ab."</code></td><td><code>"."</code></td><td><code>Ok(vec!["ab", "ab", "ab"])</code></td><td>Applies the parser and separator between m and n times (n included) and returns the list of results in a Vec</td></tr>
<li><ahref="fn.eof.html"title="fn winnow::combinator::eof"><code>eof</code></a>: Returns its input if it is at the end of input data</li>
<li><ahref="../trait.Parser.html#method.complete_err"title="method winnow::Parser::complete_err"><code>Parser::complete_err</code></a>: Replaces an <code>Incomplete</code> returned by the child parser with an <code>Backtrack</code></li>
<li><ahref="fn.cond.html"title="fn winnow::combinator::cond"><code>cond</code></a>: Conditional combinator. Wraps another parser and calls it if the condition is met</li>
<li><ahref="../trait.Parser.html#method.flat_map"title="method winnow::Parser::flat_map"><code>Parser::flat_map</code></a>: method to map a new parser from the output of the first parser, then apply that parser over the rest of the input</li>
<li><ahref="../trait.Parser.html#method.value"title="method winnow::Parser::value"><code>Parser::value</code></a>: method to replace the result of a parser</li>
<li><ahref="../trait.Parser.html#method.default_value"title="method winnow::Parser::default_value"><code>Parser::default_value</code></a>: method to replace the result of a parser</li>
<li><ahref="../trait.Parser.html#method.void"title="method winnow::Parser::void"><code>Parser::void</code></a>: method to discard the result of a parser</li>
<li><ahref="../trait.Parser.html#method.map"title="method winnow::Parser::map"><code>Parser::map</code></a>: method to map a function on the result of a parser</li>
<li><ahref="../trait.Parser.html#method.and_then"title="method winnow::Parser::and_then"><code>Parser::and_then</code></a>: Applies a second parser over the output of the first one</li>
<li><ahref="../trait.Parser.html#method.verify_map"title="method winnow::Parser::verify_map"><code>Parser::verify_map</code></a>: Maps a function returning an <code>Option</code> on the output of a parser</li>
<li><ahref="../trait.Parser.html#method.try_map"title="method winnow::Parser::try_map"><code>Parser::try_map</code></a>: Maps a function returning a <code>Result</code> on the output of a parser</li>
<li><ahref="../trait.Parser.html#method.parse_to"title="method winnow::Parser::parse_to"><code>Parser::parse_to</code></a>: Apply <ahref="https://doc.rust-lang.org/1.77.2/core/str/traits/trait.FromStr.html"title="trait core::str::traits::FromStr"><code>std::str::FromStr</code></a> to the output of the parser</li>
<li><ahref="fn.not.html"title="fn winnow::combinator::not"><code>not</code></a>: Returns a result only if the embedded parser returns <code>Backtrack</code> or <code>Incomplete</code>. Does not consume the input</li>
<li><ahref="fn.opt.html"title="fn winnow::combinator::opt"><code>opt</code></a>: Make the underlying parser optional</li>
<li><ahref="fn.peek.html"title="fn winnow::combinator::peek"><code>peek</code></a>: Returns a result without consuming the input</li>
<li><ahref="../trait.Parser.html#method.recognize"title="method winnow::Parser::recognize"><code>Parser::recognize</code></a>: If the child parser was successful, return the consumed input as the produced value</li>
<li><ahref="../trait.Parser.html#method.with_recognized"title="method winnow::Parser::with_recognized"><code>Parser::with_recognized</code></a>: If the child parser was successful, return a tuple of the consumed input and the produced output.</li>
<li><ahref="../trait.Parser.html#method.span"title="method winnow::Parser::span"><code>Parser::span</code></a>: If the child parser was successful, return the location of the consumed input as the produced value</li>
<li><ahref="../trait.Parser.html#method.with_span"title="method winnow::Parser::with_span"><code>Parser::with_span</code></a>: If the child parser was successful, return a tuple of the location of the consumed input and the produced output.</li>
<li><ahref="../trait.Parser.html#method.verify"title="method winnow::Parser::verify"><code>Parser::verify</code></a>: Returns the result of the child parser if it satisfies a verification function</li>
<li><ahref="fn.cut_err.html"title="fn winnow::combinator::cut_err"><code>cut_err</code></a>: Commit the parse result, disallowing alternative parsers from being attempted</li>
<li><ahref="fn.backtrack_err.html"title="fn winnow::combinator::backtrack_err"><code>backtrack_err</code></a>: Attempts a parse, allowing alternative parsers to be attempted despite
use of <code>cut_err</code></li>
<li><ahref="../trait.Parser.html#method.context"title="method winnow::Parser::context"><code>Parser::context</code></a>: Add context to the error if the parser fails</li>
<li><ahref="fn.trace.html"title="fn winnow::combinator::trace"><code>trace</code></a>: Print the parse state with the <code>debug</code> feature flag</li>
<li><ahref="fn.empty.html"title="fn winnow::combinator::empty"><code>empty</code></a>: Returns a value without consuming any input, always succeeds</li>
<li><ahref="fn.fail.html"title="fn winnow::combinator::fail"><code>fail</code></a>: Inversion of <ahref="fn.empty.html"title="fn winnow::combinator::empty"><code>empty</code></a>. Always fails.</li>
<li><ahref="../trait.Parser.html#method.by_ref"title="method winnow::Parser::by_ref"><code>Parser::by_ref</code></a>: Allow moving <code>&mut impl Parser</code> into other parsers</li>
<p><ahref="../token/fn.any.html"title="fn winnow::token::any"><code>any</code></a>: Matches one token</p>
</li>
<li>
<p><ahref="../ascii/fn.tab.html"title="fn winnow::ascii::tab"><code>tab</code></a>: Matches a tab character <code>\t</code></p>
</li>
<li>
<p><ahref="../ascii/fn.crlf.html"title="fn winnow::ascii::crlf"><code>crlf</code></a>: Recognizes the string <code>\r\n</code></p>
</li>
<li>
<p><ahref="../ascii/fn.line_ending.html"title="fn winnow::ascii::line_ending"><code>line_ending</code></a>: Recognizes an end of line (both <code>\n</code> and <code>\r\n</code>)</p>
</li>
<li>
<p><ahref="../ascii/fn.newline.html"title="fn winnow::ascii::newline"><code>newline</code></a>: Matches a newline character <code>\n</code></p>
</li>
<li>
<p><ahref="../ascii/fn.till_line_ending.html"title="fn winnow::ascii::till_line_ending"><code>till_line_ending</code></a>: Recognizes a string of any char except <code>\r</code> or <code>\n</code></p>
</li>
<li>
<p><ahref="fn.rest.html"title="fn winnow::combinator::rest"><code>rest</code></a>: Return the remaining input</p>
</li>
<li>
<p><ahref="../ascii/fn.alpha0.html"title="fn winnow::ascii::alpha0"><code>alpha0</code></a>: Recognizes zero or more lowercase and uppercase alphabetic characters: <code>[a-zA-Z]</code>. <ahref="../ascii/fn.alpha1.html"title="fn winnow::ascii::alpha1"><code>alpha1</code></a> does the same but returns at least one character</p>
</li>
<li>
<p><ahref="../ascii/fn.alphanumeric0.html"title="fn winnow::ascii::alphanumeric0"><code>alphanumeric0</code></a>: Recognizes zero or more numerical and alphabetic characters: <code>[0-9a-zA-Z]</code>. <ahref="../ascii/fn.alphanumeric1.html"title="fn winnow::ascii::alphanumeric1"><code>alphanumeric1</code></a> does the same but returns at least one character</p>
</li>
<li>
<p><ahref="../ascii/fn.space0.html"title="fn winnow::ascii::space0"><code>space0</code></a>: Recognizes zero or more spaces and tabs. <ahref="../ascii/fn.space1.html"title="fn winnow::ascii::space1"><code>space1</code></a> does the same but returns at least one character</p>
</li>
<li>
<p><ahref="../ascii/fn.multispace0.html"title="fn winnow::ascii::multispace0"><code>multispace0</code></a>: Recognizes zero or more spaces, tabs, carriage returns and line feeds. <ahref="../ascii/fn.multispace1.html"title="fn winnow::ascii::multispace1"><code>multispace1</code></a> does the same but returns at least one character</p>
</li>
<li>
<p><ahref="../ascii/fn.digit0.html"title="fn winnow::ascii::digit0"><code>digit0</code></a>: Recognizes zero or more numerical characters: <code>[0-9]</code>. <ahref="../ascii/fn.digit1.html"title="fn winnow::ascii::digit1"><code>digit1</code></a> does the same but returns at least one character</p>
</li>
<li>
<p><ahref="../ascii/fn.hex_digit0.html"title="fn winnow::ascii::hex_digit0"><code>hex_digit0</code></a>: Recognizes zero or more hexadecimal numerical characters: <code>[0-9A-Fa-f]</code>. <ahref="../ascii/fn.hex_digit1.html"title="fn winnow::ascii::hex_digit1"><code>hex_digit1</code></a> does the same but returns at least one character</p>
</li>
<li>
<p><ahref="../ascii/fn.oct_digit0.html"title="fn winnow::ascii::oct_digit0"><code>oct_digit0</code></a>: Recognizes zero or more octal characters: <code>[0-7]</code>. <ahref="../ascii/fn.oct_digit1.html"title="fn winnow::ascii::oct_digit1"><code>oct_digit1</code></a> does the same but returns at least one character</p>
</li>
<li>
<p><ahref="../ascii/fn.float.html"title="fn winnow::ascii::float"><code>float</code></a>: Parse a floating point number in a byte string</p>
</li>
<li>
<p><ahref="../ascii/fn.dec_int.html"title="fn winnow::ascii::dec_int"><code>dec_int</code></a>: Decode a variable-width, decimal signed integer</p>
</li>
<li>
<p><ahref="../ascii/fn.dec_uint.html"title="fn winnow::ascii::dec_uint"><code>dec_uint</code></a>: Decode a variable-width, decimal unsigned integer</p>
</li>
<li>
<p><ahref="../ascii/fn.hex_uint.html"title="fn winnow::ascii::hex_uint"><code>hex_uint</code></a>: Decode a variable-width, hexadecimal integer</p>
</li>
<li>
<p><ahref="../ascii/fn.take_escaped.html"title="fn winnow::ascii::take_escaped"><code>take_escaped</code></a>: Recognize the input slice with escaped characters</p>
<p>Use these functions with a combinator like <code>take_while</code>:</p>
<ul>
<li><ahref="../stream/trait.AsChar.html#tymethod.is_alpha"title="method winnow::stream::AsChar::is_alpha"><code>AsChar::is_alpha</code></a>: Tests if byte is ASCII alphabetic: <code>[A-Za-z]</code></li>
<li><ahref="../stream/trait.AsChar.html#tymethod.is_alphanum"title="method winnow::stream::AsChar::is_alphanum"><code>AsChar::is_alphanum</code></a>: Tests if byte is ASCII alphanumeric: <code>[A-Za-z0-9]</code></li>
<li><ahref="../stream/trait.AsChar.html#tymethod.is_dec_digit"title="method winnow::stream::AsChar::is_dec_digit"><code>AsChar::is_dec_digit</code></a>: Tests if byte is ASCII digit: <code>[0-9]</code></li>
<li><ahref="../stream/trait.AsChar.html#tymethod.is_hex_digit"title="method winnow::stream::AsChar::is_hex_digit"><code>AsChar::is_hex_digit</code></a>: Tests if byte is ASCII hex digit: <code>[0-9A-Fa-f]</code></li>
<li><ahref="../stream/trait.AsChar.html#tymethod.is_oct_digit"title="method winnow::stream::AsChar::is_oct_digit"><code>AsChar::is_oct_digit</code></a>: Tests if byte is ASCII octal digit: <code>[0-7]</code></li>
<li><ahref="../stream/trait.AsChar.html#tymethod.is_space"title="method winnow::stream::AsChar::is_space"><code>AsChar::is_space</code></a>: Tests if byte is ASCII space or tab: <code>[ \t]</code></li>
<li><ahref="../stream/trait.AsChar.html#tymethod.is_newline"title="method winnow::stream::AsChar::is_newline"><code>AsChar::is_newline</code></a>: Tests if byte is ASCII newline: <code>[\n]</code></li>
<li><ahref="../binary/fn.length_repeat.html"title="fn winnow::binary::length_repeat"><code>length_repeat</code></a> Gets a number from the first parser, then applies the second parser that many times</li>
<li><ahref="../binary/fn.length_take.html"title="fn winnow::binary::length_take"><code>length_take</code></a>: Gets a number from the first parser, then takes a subslice of the input of that size, and returns that subslice</li>
<li><ahref="../binary/fn.length_and_then.html"title="fn winnow::binary::length_and_then"><code>length_and_then</code></a>: Gets a number from the first parser, takes a subslice of the input of that size, then applies the second parser on that subslice. If the second parser returns <code>Incomplete</code>, <code>length_value</code> will return an error</li>
<ahref="../binary/fn.u64.html"title="fn winnow::binary::u64"><code>u64</code></a> are combinators that take as argument a
<ahref="../binary/enum.Endianness.html"title="enum winnow::binary::Endianness"><code>winnow::binary::Endianness</code></a>, like this: <code>i16(endianness)</code>. If the
parameter is <code>winnow::binary::Endianness::Big</code>, parse a big endian <code>i16</code> integer, otherwise a
little endian <code>i16</code> integer.</li>
<li><strong>fixed endianness</strong>: The functions are prefixed by <code>be_</code> for big endian numbers, and by <code>le_</code> for little endian numbers, and the suffix is the type they parse to. As an example, <code>be_u32</code> parses a big endian unsigned integer stored in 32 bits.
<ul>
<li><ahref="../binary/fn.be_f32.html"title="fn winnow::binary::be_f32"><code>be_f32</code></a>, <ahref="../binary/fn.be_f64.html"title="fn winnow::binary::be_f64"><code>be_f64</code></a>: Big endian floating point numbers</li>
<li><ahref="../binary/fn.le_f32.html"title="fn winnow::binary::le_f32"><code>le_f32</code></a>, <ahref="../binary/fn.le_f64.html"title="fn winnow::binary::le_f64"><code>le_f64</code></a>: Little endian floating point numbers</li>
<li><ahref="../binary/fn.be_i8.html"title="fn winnow::binary::be_i8"><code>be_i8</code></a>, <ahref="../binary/fn.be_i16.html"title="fn winnow::binary::be_i16"><code>be_i16</code></a>, <ahref="../binary/fn.be_i24.html"title="fn winnow::binary::be_i24"><code>be_i24</code></a>, <ahref="../binary/fn.be_i32.html"title="fn winnow::binary::be_i32"><code>be_i32</code></a>, <ahref="../binary/fn.be_i64.html"title="fn winnow::binary::be_i64"><code>be_i64</code></a>, <ahref="../binary/fn.be_i128.html"title="fn winnow::binary::be_i128"><code>be_i128</code></a>: Big endian signed integers</li>
<li><ahref="../binary/bits/fn.bits.html"title="fn winnow::binary::bits::bits"><code>bits</code></a>: Transforms the current input type (byte slice <code>&[u8]</code>) to a bit stream on which bit specific parsers and more general combinators can be applied</li>
<li><ahref="../binary/bits/fn.bytes.html"title="fn winnow::binary::bits::bytes"><code>bytes</code></a>: Transforms its bits stream input back into a byte slice for the underlying parser</li>
<li><ahref="../binary/bits/fn.take.html"title="fn winnow::binary::bits::take"><code>take</code></a>: Take a set number of bits</li>
<li><ahref="../binary/bits/fn.pattern.html"title="fn winnow::binary::bits::pattern"><code>pattern</code></a>: Check if a set number of bits matches a pattern</li>
<li><ahref="../binary/bits/fn.bool.html"title="fn winnow::binary::bits::bool"><code>bool</code></a>: Match any one bit</li>
</div></details><h2id="macros"class="section-header">Macros<ahref="#macros"class="anchor">§</a></h2><ulclass="item-table"><li><divclass="item-name"><aclass="macro"href="macro.dispatch.html"title="macro winnow::combinator::dispatch">dispatch</a></div><divclass="desc docblock-short"><code>match</code> for parsers</div></li><li><divclass="item-name"><aclass="macro"href="macro.seq.html"title="macro winnow::combinator::seq">seq</a></div><divclass="desc docblock-short">Initialize a struct or tuple out of a sequences of parsers</div></li></ul><h2id="structs"class="section-header">Structs<ahref="#structs"class="anchor">§</a></h2><ulclass="item-table"><li><divclass="item-name"><aclass="struct"href="struct.AndThen.html"title="struct winnow::combinator::AndThen">AndThen</a></div><divclass="desc docblock-short">Implementation of <ahref="../trait.Parser.html#method.and_then"title="method winnow::Parser::and_then"><code>Parser::and_then</code></a></div></li><li><divclass="item-name"><aclass="struct"href="struct.ByRef.html"title="struct winnow::combinator::ByRef">ByRef</a></div><divclass="desc docblock-short">Implementation of <ahref="../trait.Parser.html#method.by_ref"title="method winnow::Parser::by_ref"><code>Parser::by_ref</code></a></div></li><li><divclass="item-name"><aclass="struct"href="struct.CompleteErr.html"title="struct winnow::combinator::CompleteErr">CompleteErr</a></div><divclass="desc docblock-short">Implementation of <ahref="../trait.Parser.html#method.complete_err"title="method winnow::Parser::complete_err"><code>Parser::complete_err</code></a></div></li><li><divclass="item-name"><aclass="struct"href="struct.Context.html"title="struct winnow::combinator::Context">Context</a></div><divclass="desc docblock-short">Implementation of <ahref="../trait.Parser.html#method.context"title="method winnow::Parser::context"><code>Parser::context</code></a></div></li><li><divclass="item-name"><aclass="struct"href="struct.DefaultValue.html"title="struct winnow::combinator::DefaultValue">DefaultValue</a></div><divclass="desc docblock-short">Implementation of <ahref="../trait.Parser.html#method.default_value"title="method winnow::Parser::default_value"><code>Parser::default_value</code></a></div></li><li><divclass="item-name"><aclass="struct"href="struct.ErrInto.html"title="struct winnow::combinator::ErrInto">ErrInto</a></div><divclass="desc docblock-short">Implementation of <ahref="../trait.Parser.html#method.err_into"title="method winnow::Parser::err_into"><code>Parser::err_into</code></a></div></li><li><divclass="item-name"><aclass="struct"href="struct.FlatMap.html"title="struct winnow::combinator::FlatMap">FlatMap</a></div><divclass="desc docblock-short">Implementation of <ahref="../trait.Parser.html#method.flat_map"title="method winnow::Parser::flat_map"><code>Parser::flat_map</code></a></div></li><li><divclass="item-name"><aclass="struct"href="struct.Map.html"title="struct winnow::combinator::Map">Map</a></div><divclass="desc docblock-short">Implementation of <ahref="../trait.Parser.html#method.map"title="method winnow::Parser::map"><code>Parser::map</code></a></div></li><li><divclass="item-name"><aclass="struct"href="struct.OutputInto.html"title="struct winnow::combinator::OutputInto">OutputInto</a></div><divclass="desc docblock-short">Implementation of <ahref="../trait.Parser.html#method.output_into"title="method winnow::Parser::output_into"><code>Parser::output_into</code></a></div></li><li><divclass="item-name"><aclass="struct"href="struct.ParseTo.html"title="struct winnow::combinator::ParseTo">ParseTo</a></div><divclass="desc docblock-short">Implementation of <ahref="../trait.Parser.html#method.parse_to"title="method winnow::Parser::parse_to"><code>Parser::parse_to</code></a></div></li><li><divclass="item-name"><aclass="struct"href="struct.ParserIterator.html"title="struct winnow::combinator::ParserIterator">ParserIterator</a></div><divclass="desc docblock-short">Main structure associated to <ahref="fn.iterator.html"title="fn
produces a result.</div></li><li><divclass="item-name"><aclass="fn"href="fn.rest.html"title="fn winnow::combinator::rest">rest</a></div><divclass="desc docblock-short">Return the remaining input.</div></li><li><divclass="item-name"><aclass="fn"href="fn.rest_len.html"title="fn winnow::combinator::rest_len">rest_len</a></div><divclass="desc docblock-short">Return the length of the remaining input.</div></li><li><divclass="item-name"><aclass="fn"href="fn.separated.html"title="fn winnow::combinator::separated">separated</a></div><divclass="desc docblock-short"><ahref="../stream/trait.Accumulate.html"title="trait winnow::stream::Accumulate"><code>Accumulate</code></a> the output of a parser, interleaved with <code>sep</code></div></li><li><divclass="item-name"><aclass="fn"href="fn.separated_foldl1.html"title="fn winnow::combinator::separated_foldl1">separated_foldl1</a></div><divclass="desc docblock-short">Alternates between two parsers, merging the results (left associative)</div></li><li><divclass="item-name"><aclass="fn"href="fn.separated_foldr1.html"title="fn winnow::combinator::separated_foldr1">separated_foldr1</a></div><divclass="desc docblock-short">Alternates between two parsers, merging the results (right associative)</div></li><li><divclass="item-name"><aclass="fn"href="fn.separated_pair.html"title="fn winnow::combinator::separated_pair">separated_pair</a></div><divclass="desc docblock-short">Sequence three parsers, only returning the values of the first and third.</div></li><li><divclass="item-name"><aclass="fn"href="fn.terminated.html"title="fn winnow::combinator::terminated">terminated</a></div><divclass="desc docblock-short">Sequence two parsers, only returning the output of the first.</div></li><li><divclass="item-name"><aclass="fn"href="fn.todo.html"title="fn winnow::combinator::todo">todo</a></div><divclass="desc docblock-short">A placeholder for a not-yet-implemented <ahref="../trait.Parser.html"title="trait winnow::Parser"><code>Parser</code></a></div></li><li><divclass="item-name"><aclass="fn"href="fn.trace.html"title="fn winnow::combinator::trace">trace</a></div><divclass="desc docblock-short">Trace the execution of the parser</div></li></ul></section></div></main></body></html>