2024-03-27 11:12:16 +00:00
<!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 = "Core trait for parsing" > < title > Parser in winnow - Rust< / title > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../static.files/SourceSerif4-Regular-46f98efaafac5295.ttf.woff2" > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../static.files/FiraSans-Regular-018c141bf0843ffd.woff2" > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../static.files/FiraSans-Medium-8f9a781e4970d388.woff2" > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../static.files/SourceCodePro-Regular-562dcc5011b6de7d.ttf.woff2" > < link rel = "preload" as = "font" type = "font/woff2" crossorigin href = "../static.files/SourceCodePro-Semibold-d899c5a5c4aeb14a.ttf.woff2" > < link rel = "stylesheet" href = "../static.files/normalize-76eba96aa4d2e634.css" > < link rel = "stylesheet" href = "../static.files/rustdoc-5bc39a1768837dd0.css" > < meta name = "rustdoc-vars" data-root-path = "../" data-static-root-path = "../static.files/" data-current-crate = "winnow" data-themes = "" data-resource-suffix = "" data-rustdoc-version = "1.77.0 (aedd173a2 2024-03-17)" data-channel = "1.77.0" data-search-js = "search-dd67cee4cfa65049.js" data-settings-js = "settings-4313503d2e1961c2.js" > < script src = "../static.files/storage-4c98445ec4002617.js" > < / script > < script defer src = "sidebar-items.js" > < / script > < script defer src = "../static.files/main-48f368f3872407c8.js" > < / script > < noscript > < link rel = "stylesheet" href = "../static.files/noscript-04d5337699b92874.css" > < / noscript > < link rel = "alternate icon" type = "image/png" href = "../static.files/favicon-16x16-8b506e7a72182f1c.png" > < link rel = "alternate icon" type = "image/png" href = "../static.files/favicon-32x32-422f7d1d52889060.png" > < link rel = "icon" type = "image/svg+xml" href = "../static.files/favicon-2c020d218678b618.svg" > < / head > < body class = "rustdoc trait" > <!-- [if lte IE 11]><div class="warning">This old browser is unsupported and will most likely display funky things.</div><![endif] --> < nav class = "mobile-topbar" > < button class = "sidebar-menu-toggle" title = "show sidebar" > < / button > < / nav > < nav class = "sidebar" > < div class = "sidebar-crate" > < h2 > < a href = "../winnow/index.html" > winnow< / a > < span class = "version" > 0.6.5< / span > < / h2 > < / div > < h2 class = "location" > < a href = "#" > Parser< / a > < / h2 > < div class = "sidebar-elems" > < section > < h3 > < a href = "#required-methods" > Required Methods< / a > < / h3 > < ul class = "block" > < li > < a href = "#tymethod.parse_next" > parse_next< / a > < / li > < / ul > < h3 > < a href = "#provided-methods" > Provided Methods< / a > < / h3 > < ul class = "block" > < li > < a href = "#method.and_then" > and_then< / a > < / li > < li > < a href = "#method.by_ref" > by_ref< / a > < / li > < li > < a href = "#method.complete_err" > complete_err< / a > < / li > < li > < a href = "#method.context" > context< / a > < / li > < li > < a href = "#method.default_value" > default_value< / a > < / li > < li > < a href = "#method.err_into" > err_into< / a > < / li > < li > < a href = "#method.flat_map" > flat_map< / a > < / li > < li > < a href = "#method.map" > map< / a > < / li > < li > < a href = "#method.output_into" > output_into< / a > < / li > < li > < a href = "#method.parse" > parse< / a > < / li > < li > < a href = "#method.parse_peek" > parse_peek< / a > < / li > < li > < a href = "#method.parse_to" > parse_to< / a > < / li > < li > < a href = "#method.recognize" > recognize< / a > < / li > < li > < a href = "#method.span" > span< / a > < / li > < li > < a href = "#method.try_map" > try_map< / a > < / li > < li > < a href = "#method.value" > value< / a > < / li > < li > < a href = "#method.verify" > verify< / a > < / li > < li > < a href = "#method.verify_map" > verify_map< / a > < / li > < li > < a href = "#method.void" > void< / a > < / li > < li > < a href = "#method.with_recognized" > with_recognized< / a > < / li > < li > < a href = "#method.with_span" > with_span< / a > < / li > < / ul > < h3 > < a href = "#foreign-impls" > Implementations on Foreign Types< / a > < / h3 > < ul class = "block" > < li > < a href = "#impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-%26%5Bu8;+N%5D" > & ' s [u8; N]< / a > < / li > < li > < a href = "#impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-%26%5Bu8%5D" > & ' s [u8]< / a > < / li > < li > < a href = "#impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-%26str" > & ' s str< / a > < / li > < li > < a href = "#impl-Parser%
2024-03-11 08:39:13 +00:00
< main > < div class = "width-limiter" > < nav class = "sub" > < form class = "search-form" > < span > < / span > < div id = "sidebar-button" tabindex = "-1" > < a href = "../winnow/all.html" title = "show sidebar" > < / a > < / div > < input class = "search-input" name = "search" aria-label = "Run search in the documentation" autocomplete = "off" spellcheck = "false" placeholder = "Click or press ‘ S’ to search, ‘ ?’ for more options…" type = "search" > < div id = "help-button" tabindex = "-1" > < a href = "../help.html" title = "help" > ?< / a > < / div > < div id = "settings-menu" tabindex = "-1" > < a href = "../settings.html" title = "settings" > < img width = "22" height = "22" alt = "Change settings" src = "../static.files/wheel-7b819b6101059cd0.svg" > < / a > < / div > < / form > < / nav > < section id = "main-content" class = "content" > < div class = "main-heading" > < h1 > Trait < a href = "index.html" > winnow< / a > ::< wbr > < a class = "trait" href = "#" > Parser< / a > < button id = "copy-path" title = "Copy item path to clipboard" > < img src = "../static.files/clipboard-7571035ce49a181d.svg" width = "19" height = "18" alt = "Copy item path" > < / button > < / h1 > < span class = "out-of-band" > < a class = "src" href = "../src/winnow/parser.rs.html#46-706" > source< / a > · < button id = "toggle-all-docs" title = "collapse all docs" > [< span > − < / span > ]< / button > < / span > < / div > < pre class = "rust item-decl" > < code > pub trait Parser< I, O, E> {
< details class = "toggle type-contents-toggle" > < summary class = "hideme" > < span > Show 22 methods< / span > < / summary > // Required method
2024-03-27 11:12:16 +00:00
fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, input: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < O, E> ;
2024-03-11 08:39:13 +00:00
// Provided methods
2024-03-27 11:12:16 +00:00
fn < a href = "#method.parse" class = "fn" > parse< / a > (& mut self, input: I) -> < a class = "enum" href = "https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title = "enum core::result::Result" > Result< / a > < O, < a class = "struct" href = "error/struct.ParseError.html" title = "struct winnow::error::ParseError" > ParseError< / a > < I, E> >
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > + < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title = "trait core::clone::Clone" > Clone< / a > ,
2024-03-11 08:39:13 +00:00
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.parse_peek" class = "fn" > parse_peek< / a > (& mut self, input: I) -> < a class = "type" href = "error/type.IResult.html" title = "type winnow::error::IResult" > IResult< / a > < I, O, E> { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.by_ref" class = "fn" > by_ref< / a > (& mut self) -> < a class = "struct" href = "combinator/struct.ByRef.html" title = "struct winnow::combinator::ByRef" > ByRef< / a > < '_, Self>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > < / span > { ... }
2024-03-11 08:39:13 +00:00
< span class = "item-spacer" > < / span > fn < a href = "#method.value" class = "fn" > value< / a > < O2> (self, val: O2) -> < a class = "struct" href = "combinator/struct.Value.html" title = "struct winnow::combinator::Value" > Value< / a > < Self, I, O, O2, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
O2: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title = "trait core::clone::Clone" > Clone< / a > < / span > { ... }
2024-03-11 08:39:13 +00:00
< span class = "item-spacer" > < / span > fn < a href = "#method.default_value" class = "fn" > default_value< / a > < O2> (self) -> < a class = "struct" href = "combinator/struct.DefaultValue.html" title = "struct winnow::combinator::DefaultValue" > DefaultValue< / a > < Self, I, O, O2, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
O2: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/default/trait.Default.html" title = "trait core::default::Default" > Default< / a > < / span > { ... }
2024-03-11 08:39:13 +00:00
< span class = "item-spacer" > < / span > fn < a href = "#method.void" class = "fn" > void< / a > (self) -> < a class = "struct" href = "combinator/struct.Void.html" title = "struct winnow::combinator::Void" > Void< / a > < Self, I, O, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > < / span > { ... }
2024-03-11 08:39:13 +00:00
< span class = "item-spacer" > < / span > fn < a href = "#method.output_into" class = "fn" > output_into< / a > < O2> (self) -> < a class = "struct" href = "combinator/struct.OutputInto.html" title = "struct winnow::combinator::OutputInto" > OutputInto< / a > < Self, I, O, O2, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
O: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.Into.html" title = "trait core::convert::Into" > Into< / a > < O2> < / span > { ... }
2024-03-11 08:39:13 +00:00
< span class = "item-spacer" > < / span > fn < a href = "#method.recognize" class = "fn" > recognize< / a > (self) -> < a class = "struct" href = "combinator/struct.Recognize.html" title = "struct winnow::combinator::Recognize" > Recognize< / a > < Self, I, O, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.with_recognized" class = "fn" > with_recognized< / a > (self) -> < a class = "struct" href = "combinator/struct.WithRecognized.html" title = "struct winnow::combinator::WithRecognized" > WithRecognized< / a > < Self, I, O, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.span" class = "fn" > span< / a > (self) -> < a class = "struct" href = "combinator/struct.Span.html" title = "struct winnow::combinator::Span" > Span< / a > < Self, I, O, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > + < a class = "trait" href = "stream/trait.Location.html" title = "trait winnow::stream::Location" > Location< / a > < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.with_span" class = "fn" > with_span< / a > (self) -> < a class = "struct" href = "combinator/struct.WithSpan.html" title = "struct winnow::combinator::WithSpan" > WithSpan< / a > < Self, I, O, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > + < a class = "trait" href = "stream/trait.Location.html" title = "trait winnow::stream::Location" > Location< / a > < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.map" class = "fn" > map< / a > < G, O2> (self, map: G) -> < a class = "struct" href = "combinator/struct.Map.html" title = "struct winnow::combinator::Map" > Map< / a > < Self, G, I, O, O2, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> O2,
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > < / span > { ... }
2024-03-11 08:39:13 +00:00
< span class = "item-spacer" > < / span > fn < a href = "#method.try_map" class = "fn" > try_map< / a > < G, O2, E2> (self, map: G) -> < a class = "struct" href = "combinator/struct.TryMap.html" title = "struct winnow::combinator::TryMap" > TryMap< / a > < Self, G, I, O, O2, E, E2>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> < a class = "enum" href = "https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title = "enum core::result::Result" > Result< / a > < O2, E2> ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
E: < a class = "trait" href = "error/trait.FromExternalError.html" title = "trait winnow::error::FromExternalError" > FromExternalError< / a > < I, E2> < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.verify_map" class = "fn" > verify_map< / a > < G, O2> (self, map: G) -> < a class = "struct" href = "combinator/struct.VerifyMap.html" title = "struct winnow::combinator::VerifyMap" > VerifyMap< / a > < Self, G, I, O, O2, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> < a class = "enum" href = "https://doc.rust-lang.org/1.77.0/core/option/enum.Option.html" title = "enum core::option::Option" > Option< / a > < O2> ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.flat_map" class = "fn" > flat_map< / a > < G, H, O2> (self, map: G) -> < a class = "struct" href = "combinator/struct.FlatMap.html" title = "struct winnow::combinator::FlatMap" > FlatMap< / a > < Self, G, H, I, O, O2, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> H,
2024-03-11 08:39:13 +00:00
H: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.and_then" class = "fn" > and_then< / a > < G, O2> (self, inner: G) -> < a class = "struct" href = "combinator/struct.AndThen.html" title = "struct winnow::combinator::AndThen" > AndThen< / a > < Self, G, I, O, O2, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
G: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < O, O2, E> ,
O: < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > ,
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.parse_to" class = "fn" > parse_to< / a > < O2> (self) -> < a class = "struct" href = "combinator/struct.ParseTo.html" title = "struct winnow::combinator::ParseTo" > ParseTo< / a > < Self, I, O, O2, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
O: < a class = "trait" href = "stream/trait.ParseSlice.html" title = "trait winnow::stream::ParseSlice" > ParseSlice< / a > < O2> ,
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.verify" class = "fn" > verify< / a > < G, O2> (self, filter: G) -> < a class = "struct" href = "combinator/struct.Verify.html" title = "struct winnow::combinator::Verify" > Verify< / a > < Self, G, I, O, O2, E>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & O2< / a > ) -> < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.bool.html" > bool< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
2024-03-27 11:12:16 +00:00
O: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/borrow/trait.Borrow.html" title = "trait core::borrow::Borrow" > Borrow< / a > < O2> ,
O2: ?< a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> < / span > { ... }
< span class = "item-spacer" > < / span > fn < a href = "#method.context" class = "fn" > context< / a > < C> (self, context: C) -> < a class = "struct" href = "combinator/struct.Context.html" title = "struct winnow::combinator::Context" > Context< / a > < Self, I, O, E, C>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
E: < a class = "trait" href = "error/trait.AddContext.html" title = "trait winnow::error::AddContext" > AddContext< / a > < I, C> ,
2024-03-27 11:12:16 +00:00
C: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title = "trait core::clone::Clone" > Clone< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/fmt/trait.Debug.html" title = "trait core::fmt::Debug" > Debug< / a > < / span > { ... }
2024-03-11 08:39:13 +00:00
< span class = "item-spacer" > < / span > fn < a href = "#method.complete_err" class = "fn" > complete_err< / a > (self) -> < a class = "struct" href = "combinator/struct.CompleteErr.html" title = "struct winnow::combinator::CompleteErr" > CompleteErr< / a > < Self>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > < / span > { ... }
2024-03-11 08:39:13 +00:00
< span class = "item-spacer" > < / span > fn < a href = "#method.err_into" class = "fn" > err_into< / a > < E2> (self) -> < a class = "struct" href = "combinator/struct.ErrInto.html" title = "struct winnow::combinator::ErrInto" > ErrInto< / a > < Self, I, O, E, E2>
2024-03-27 11:12:16 +00:00
< span class = "where" > where Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
E: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.Into.html" title = "trait core::convert::Into" > Into< / a > < E2> < / span > { ... }
2024-03-11 08:39:13 +00:00
< / details > }< / code > < / pre > < details class = "toggle top-doc" open > < summary class = "hideme" > < span > Expand description< / span > < / summary > < div class = "docblock" > < p > Core trait for parsing< / p >
< p > The simplest way to implement a < code > Parser< / code > is with a function< / p >
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::prelude::< span class = "kw-2" > *< / span > ;
< span class = "kw" > fn < / span > empty(input: < span class = "kw-2" > & mut & < / span > str) -> PResult< ()> {
< span class = "kw" > let < / span > output = ();
< span class = "prelude-val" > Ok< / span > (output)
}
< span class = "kw" > let < / span > (input, output) = empty.parse_peek(< span class = "string" > "Hello"< / span > ).unwrap();
< span class = "macro" > assert_eq!< / span > (input, < span class = "string" > "Hello"< / span > ); < span class = "comment" > // We didn't consume any input< / span > < / code > < / pre > < / div >
< p > which can be made stateful by returning a function< / p >
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::prelude::< span class = "kw-2" > *< / span > ;
< span class = "kw" > fn < / span > empty< O: Clone> (output: O) -> < span class = "kw" > impl < / span > FnMut(< span class = "kw-2" > & mut & < / span > str) -> PResult< O> {
< span class = "kw" > move < / span > |input: < span class = "kw-2" > & mut & < / span > str| {
< span class = "kw" > let < / span > output = output.clone();
< span class = "prelude-val" > Ok< / span > (output)
}
}
< span class = "kw" > let < / span > (input, output) = empty(< span class = "string" > "World"< / span > ).parse_peek(< span class = "string" > "Hello"< / span > ).unwrap();
< span class = "macro" > assert_eq!< / span > (input, < span class = "string" > "Hello"< / span > ); < span class = "comment" > // We didn't consume any input
< / span > < span class = "macro" > assert_eq!< / span > (output, < span class = "string" > "World"< / span > );< / code > < / pre > < / div >
< p > Additionally, some basic types implement < code > Parser< / code > as well, including< / p >
< ul >
< li > < code > u8< / code > and < code > char< / code > , see < a href = "token/fn.one_of.html" title = "fn winnow::token::one_of" > < code > winnow::token::one_of< / code > < / a > < / li >
< li > < code > & [u8]< / code > and < code > & str< / code > , see < a href = "token/fn.literal.html" title = "fn winnow::token::literal" > < code > winnow::token::literal< / code > < / a > < / li >
< / ul >
2024-03-27 11:12:16 +00:00
< / div > < / details > < h2 id = "required-methods" class = "section-header" > Required Methods< a href = "#required-methods" class = "anchor" > §< / a > < / h2 > < div class = "methods" > < details class = "toggle method-toggle" open > < summary > < section id = "tymethod.parse_next" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#80" > source< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, input: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < O, E> < / h4 > < / section > < / summary > < div class = "docblock" > < p > Take tokens from the < a href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > < code > Stream< / code > < / a > , turning it into the output< / p >
2024-03-11 08:39:13 +00:00
< p > This includes advancing the < a href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > < code > Stream< / code > < / a > to the next location.< / p >
< p > On error, < code > input< / code > will be left pointing at the error location.< / p >
2024-03-27 11:12:16 +00:00
< / div > < / details > < / div > < h2 id = "provided-methods" class = "section-header" > Provided Methods< a href = "#provided-methods" class = "anchor" > §< / a > < / h2 > < div class = "methods" > < details class = "toggle method-toggle" open > < summary > < section id = "method.parse" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#49-73" > source< / a > < h4 class = "code-header" > fn < a href = "#method.parse" class = "fn" > parse< / a > (& mut self, input: I) -> < a class = "enum" href = "https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title = "enum core::result::Result" > Result< / a > < O, < a class = "struct" href = "error/struct.ParseError.html" title = "struct winnow::error::ParseError" > ParseError< / a > < I, E> > < div class = "where" > where
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > + < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title = "trait core::clone::Clone" > Clone< / a > ,
2024-03-11 08:39:13 +00:00
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Parse all of < code > input< / code > , generating < code > O< / code > from it< / p >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.parse_peek" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#86-91" > source< / a > < h4 class = "code-header" > fn < a href = "#method.parse_peek" class = "fn" > parse_peek< / a > (& mut self, input: I) -> < a class = "type" href = "error/type.IResult.html" title = "type winnow::error::IResult" > IResult< / a > < I, O, E> < / h4 > < / section > < / summary > < div class = "docblock" > < p > Take tokens from the < a href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > < code > Stream< / code > < / a > , turning it into the output< / p >
< p > This includes advancing the < a href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > < code > Stream< / code > < / a > to the next location.< / p >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.by_ref" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#137-142" > source< / a > < h4 class = "code-header" > fn < a href = "#method.by_ref" class = "fn" > by_ref< / a > (& mut self) -> < a class = "struct" href = "combinator/struct.ByRef.html" title = "struct winnow::combinator::ByRef" > ByRef< / a > < '_, Self> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Treat < code > & mut Self< / code > as a parser< / p >
2024-03-11 08:39:13 +00:00
< p > This helps when needing to move a < code > Parser< / code > when all you have is a < code > & mut Parser< / code > .< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "example" > < a class = "doc-anchor" href = "#example" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< p > Because parsers are < code > FnMut< / code > , they can be called multiple times. This prevents moving < code > f< / code >
into < a href = "binary/fn.length_take.html" title = "fn winnow::binary::length_take" > < code > length_take< / code > < / a > and < code > g< / code > into
< a href = "trait.Parser.html#method.complete_err" title = "method winnow::Parser::complete_err" > < code > Parser::complete_err< / code > < / a > :< / p >
< div class = "example-wrap compile_fail" > < a href = "#" class = "tooltip" title = "This example deliberately fails to compile" > ⓘ< / a > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > pub fn < / span > length_value< < span class = "lifetime" > 'i< / span > , O, E: ParserError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 'i < / span > [u8]> > (
< span class = "kw-2" > mut < / span > f: < span class = "kw" > impl < / span > Parser< < span class = "kw-2" > & < / span > < span class = "lifetime" > 'i < / span > [u8], usize, E> ,
< span class = "kw-2" > mut < / span > g: < span class = "kw" > impl < / span > Parser< < span class = "kw-2" > & < / span > < span class = "lifetime" > 'i < / span > [u8], O, E>
) -> < span class = "kw" > impl < / span > Parser< < span class = "kw-2" > & < / span > < span class = "lifetime" > 'i < / span > [u8], O, E> {
< span class = "kw" > move < / span > |i: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 'i < / span > [u8]| {
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > data = length_take(f).parse_next(i)< span class = "question-mark" > ?< / span > ;
< span class = "kw" > let < / span > o = g.complete_err().parse_next(< span class = "kw-2" > & mut < / span > data)< span class = "question-mark" > ?< / span > ;
< span class = "prelude-val" > Ok< / span > (o)
}
}< / code > < / pre > < / div >
< p > By adding < code > by_ref< / code > , we can make this work:< / p >
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > pub fn < / span > length_value< < span class = "lifetime" > 'i< / span > , O, E: ParserError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 'i < / span > [u8]> > (
< span class = "kw-2" > mut < / span > f: < span class = "kw" > impl < / span > Parser< < span class = "kw-2" > & < / span > < span class = "lifetime" > 'i < / span > [u8], usize, E> ,
< span class = "kw-2" > mut < / span > g: < span class = "kw" > impl < / span > Parser< < span class = "kw-2" > & < / span > < span class = "lifetime" > 'i < / span > [u8], O, E>
) -> < span class = "kw" > impl < / span > Parser< < span class = "kw-2" > & < / span > < span class = "lifetime" > 'i < / span > [u8], O, E> {
< span class = "kw" > move < / span > |i: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 'i < / span > [u8]| {
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > data = length_take(f.by_ref()).parse_next(i)< span class = "question-mark" > ?< / span > ;
< span class = "kw" > let < / span > o = g.by_ref().complete_err().parse_next(< span class = "kw-2" > & mut < / span > data)< span class = "question-mark" > ?< / span > ;
< span class = "prelude-val" > Ok< / span > (o)
}
}< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.value" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#161-167" > source< / a > < h4 class = "code-header" > fn < a href = "#method.value" class = "fn" > value< / a > < O2> (self, val: O2) -> < a class = "struct" href = "combinator/struct.Value.html" title = "struct winnow::combinator::Value" > Value< / a > < Self, I, O, O2, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
O2: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title = "trait core::clone::Clone" > Clone< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Produce the provided value< / p >
< h5 id = "example-1" > < a class = "doc-anchor" href = "#example-1" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::alpha1;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parser = alpha1.value(< span class = "number" > 1234< / span > );
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "abcd"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "number" > 1234< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "123abcd;"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "123abcd;"< / span > , ErrorKind::Slice))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.default_value" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#185-191" > source< / a > < h4 class = "code-header" > fn < a href = "#method.default_value" class = "fn" > default_value< / a > < O2> (self) -> < a class = "struct" href = "combinator/struct.DefaultValue.html" title = "struct winnow::combinator::DefaultValue" > DefaultValue< / a > < Self, I, O, O2, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
O2: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/default/trait.Default.html" title = "trait core::default::Default" > Default< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Produce a type’ s default value< / p >
< h5 id = "example-2" > < a class = "doc-anchor" href = "#example-2" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::alpha1;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parser = alpha1.default_value::< u32> ();
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "abcd"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "number" > 0< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "123abcd;"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "123abcd;"< / span > , ErrorKind::Slice))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.void" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#209-214" > source< / a > < h4 class = "code-header" > fn < a href = "#method.void" class = "fn" > void< / a > (self) -> < a class = "struct" href = "combinator/struct.Void.html" title = "struct winnow::combinator::Void" > Void< / a > < Self, I, O, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Discards the output of the < code > Parser< / code > < / p >
< h5 id = "example-3" > < a class = "doc-anchor" href = "#example-3" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::alpha1;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parser = alpha1.void();
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "abcd"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , ())));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "123abcd;"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "123abcd;"< / span > , ErrorKind::Slice))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.output_into" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#238-244" > source< / a > < h4 class = "code-header" > fn < a href = "#method.output_into" class = "fn" > output_into< / a > < O2> (self) -> < a class = "struct" href = "combinator/struct.OutputInto.html" title = "struct winnow::combinator::OutputInto" > OutputInto< / a > < Self, I, O, O2, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
O: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.Into.html" title = "trait core::convert::Into" > Into< / a > < O2> ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Convert the parser’ s output to another type using < a href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.From.html" title = "trait core::convert::From" > < code > std::convert::From< / code > < / a > < / p >
< h5 id = "example-4" > < a class = "doc-anchor" href = "#example-4" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::alpha1;
< span class = "kw" > fn < / span > parser1< < span class = "lifetime" > 's< / span > > (i: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > str) -> PResult< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str, InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str> > {
alpha1(i)
}
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parser2 = parser1.output_into();
< span class = "comment" > // the parser converts the & str output of the child parser into a Vec< u8>
< / span > < span class = "kw" > let < / span > bytes: IResult< < span class = "kw-2" > & < / span > str, Vec< u8> > = parser2.parse_peek(< span class = "string" > "abcd"< / span > );
< span class = "macro" > assert_eq!< / span > (bytes, < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "macro" > vec!< / span > [< span class = "number" > 97< / span > , < span class = "number" > 98< / span > , < span class = "number" > 99< / span > , < span class = "number" > 100< / span > ])));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.recognize" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#264-270" > source< / a > < h4 class = "code-header" > fn < a href = "#method.recognize" class = "fn" > recognize< / a > (self) -> < a class = "struct" href = "combinator/struct.Recognize.html" title = "struct winnow::combinator::Recognize" > Recognize< / a > < Self, I, O, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Produce the consumed input as produced value.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "example-5" > < a class = "doc-anchor" href = "#example-5" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::{alpha1};
< span class = "kw" > use < / span > winnow::combinator::separated_pair;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parser = separated_pair(alpha1, < span class = "string" > ','< / span > , alpha1).recognize();
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "abcd,efgh"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "string" > "abcd,efgh"< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "abcd;"< / span > ),< span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > ";"< / span > , ErrorKind::Tag))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.with_recognized" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#310-316" > source< / a > < h4 class = "code-header" > fn < a href = "#method.with_recognized" class = "fn" > with_recognized< / a > (self) -> < a class = "struct" href = "combinator/struct.WithRecognized.html" title = "struct winnow::combinator::WithRecognized" > WithRecognized< / a > < Self, I, O, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Produce the consumed input with the output< / p >
< p > Functions similarly to < a href = "trait.Parser.html#method.recognize" title = "method winnow::Parser::recognize" > recognize< / a > except it
returns the parser output as well.< / p >
< p > This can be useful especially in cases where the output is not the same type
as the input, or the input is a user defined type.< / p >
< p > Returned tuple is of the format < code > (produced output, consumed input)< / code > .< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "example-6" > < a class = "doc-anchor" href = "#example-6" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::{alpha1};
< span class = "kw" > use < / span > winnow::token::literal;
< span class = "kw" > use < / span > winnow::combinator::separated_pair;
< span class = "kw" > fn < / span > inner_parser< < span class = "lifetime" > 's< / span > > (input: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > str) -> PResult< bool, InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str> > {
< span class = "string" > "1234"< / span > .value(< span class = "bool-val" > true< / span > ).parse_next(input)
}
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > consumed_parser = separated_pair(alpha1, < span class = "string" > ','< / span > , alpha1).value(< span class = "bool-val" > true< / span > ).with_recognized();
< span class = "macro" > assert_eq!< / span > (consumed_parser.parse_peek(< span class = "string" > "abcd,efgh1"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > "1"< / span > , (< span class = "bool-val" > true< / span > , < span class = "string" > "abcd,efgh"< / span > ))));
< span class = "macro" > assert_eq!< / span > (consumed_parser.parse_peek(< span class = "string" > "abcd;"< / span > ),< span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > ";"< / span > , ErrorKind::Tag))));
< span class = "comment" > // the second output (representing the consumed input)
// should be the same as that of the `recognize` parser.
< / span > < span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > recognize_parser = inner_parser.recognize();
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > consumed_parser = inner_parser.with_recognized().map(|(output, consumed)| consumed);
< span class = "macro" > assert_eq!< / span > (recognize_parser.parse_peek(< span class = "string" > "1234"< / span > ), consumed_parser.parse_peek(< span class = "string" > "1234"< / span > ));
< span class = "macro" > assert_eq!< / span > (recognize_parser.parse_peek(< span class = "string" > "abcd"< / span > ), consumed_parser.parse_peek(< span class = "string" > "abcd"< / span > ));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.span" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#335-341" > source< / a > < h4 class = "code-header" > fn < a href = "#method.span" class = "fn" > span< / a > (self) -> < a class = "struct" href = "combinator/struct.Span.html" title = "struct winnow::combinator::Span" > Span< / a > < Self, I, O, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > + < a class = "trait" href = "stream/trait.Location.html" title = "trait winnow::stream::Location" > Location< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Produce the location of the consumed input as produced value.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "example-7" > < a class = "doc-anchor" href = "#example-7" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::stream::Located;
< span class = "kw" > use < / span > winnow::ascii::alpha1;
< span class = "kw" > use < / span > winnow::combinator::separated_pair;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parser = separated_pair(alpha1.span(), < span class = "string" > ','< / span > , alpha1.span());
< span class = "macro" > assert_eq!< / span > (parser.parse(Located::new(< span class = "string" > "abcd,efgh"< / span > )), < span class = "prelude-val" > Ok< / span > ((< span class = "number" > 0< / span > ..< span class = "number" > 4< / span > , < span class = "number" > 5< / span > ..< span class = "number" > 9< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(Located::new(< span class = "string" > "abcd;"< / span > )),< span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(Located::new(< span class = "string" > "abcd;"< / span > ).peek_slice(< span class = "number" > 4< / span > ).< span class = "number" > 0< / span > , ErrorKind::Tag))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.with_span" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#384-390" > source< / a > < h4 class = "code-header" > fn < a href = "#method.with_span" class = "fn" > with_span< / a > (self) -> < a class = "struct" href = "combinator/struct.WithSpan.html" title = "struct winnow::combinator::WithSpan" > WithSpan< / a > < Self, I, O, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > + < a class = "trait" href = "stream/trait.Location.html" title = "trait winnow::stream::Location" > Location< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Produce the location of consumed input with the output< / p >
< p > Functions similarly to < a href = "trait.Parser.html#method.span" title = "method winnow::Parser::span" > < code > Parser::span< / code > < / a > except it
returns the parser output as well.< / p >
< p > This can be useful especially in cases where the output is not the same type
as the input, or the input is a user defined type.< / p >
< p > Returned tuple is of the format < code > (produced output, consumed input)< / code > .< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "example-8" > < a class = "doc-anchor" href = "#example-8" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::stream::Located;
< span class = "kw" > use < / span > winnow::ascii::alpha1;
< span class = "kw" > use < / span > winnow::token::literal;
< span class = "kw" > use < / span > winnow::combinator::separated_pair;
< span class = "kw" > fn < / span > inner_parser< < span class = "lifetime" > 's< / span > > (input: < span class = "kw-2" > & mut < / span > Located< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str> ) -> PResult< bool, InputError< Located< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str> > > {
< span class = "string" > "1234"< / span > .value(< span class = "bool-val" > true< / span > ).parse_next(input)
}
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > consumed_parser = separated_pair(alpha1.value(< span class = "number" > 1< / span > ).with_span(), < span class = "string" > ','< / span > , alpha1.value(< span class = "number" > 2< / span > ).with_span());
< span class = "macro" > assert_eq!< / span > (consumed_parser.parse(Located::new(< span class = "string" > "abcd,efgh"< / span > )), < span class = "prelude-val" > Ok< / span > (((< span class = "number" > 1< / span > , < span class = "number" > 0< / span > ..< span class = "number" > 4< / span > ), (< span class = "number" > 2< / span > , < span class = "number" > 5< / span > ..< span class = "number" > 9< / span > ))));
< span class = "macro" > assert_eq!< / span > (consumed_parser.parse_peek(Located::new(< span class = "string" > "abcd;"< / span > )),< span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(Located::new(< span class = "string" > "abcd;"< / span > ).peek_slice(< span class = "number" > 4< / span > ).< span class = "number" > 0< / span > , ErrorKind::Tag))));
< span class = "comment" > // the second output (representing the consumed input)
// should be the same as that of the `span` parser.
< / span > < span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > recognize_parser = inner_parser.span();
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > consumed_parser = inner_parser.with_span().map(|(output, consumed)| consumed);
< span class = "macro" > assert_eq!< / span > (recognize_parser.parse_peek(Located::new(< span class = "string" > "1234"< / span > )), consumed_parser.parse_peek(Located::new(< span class = "string" > "1234"< / span > )));
< span class = "macro" > assert_eq!< / span > (recognize_parser.parse_peek(Located::new(< span class = "string" > "abcd"< / span > )), consumed_parser.parse_peek(Located::new(< span class = "string" > "abcd"< / span > )));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.map" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#411-417" > source< / a > < h4 class = "code-header" > fn < a href = "#method.map" class = "fn" > map< / a > < G, O2> (self, map: G) -> < a class = "struct" href = "combinator/struct.Map.html" title = "struct winnow::combinator::Map" > Map< / a > < Self, G, I, O, O2, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> O2,
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Maps a function over the output of a parser< / p >
< h5 id = "example-9" > < a class = "doc-anchor" href = "#example-9" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::{error::ErrMode,error::ErrorKind, error::InputError, Parser};
< span class = "kw" > use < / span > winnow::ascii::digit1;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parser = digit1.map(|s: < span class = "kw-2" > & < / span > str| s.len());
< span class = "comment" > // the parser will count how many characters were returned by digit1
< / span > < span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "123456"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "number" > 6< / span > )));
< span class = "comment" > // this will fail if digit1 fails
< / span > < span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "abc"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "abc"< / span > , ErrorKind::Slice))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.try_map" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#441-449" > source< / a > < h4 class = "code-header" > fn < a href = "#method.try_map" class = "fn" > try_map< / a > < G, O2, E2> (self, map: G) -> < a class = "struct" href = "combinator/struct.TryMap.html" title = "struct winnow::combinator::TryMap" > TryMap< / a > < Self, G, I, O, O2, E, E2> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> < a class = "enum" href = "https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title = "enum core::result::Result" > Result< / a > < O2, E2> ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
E: < a class = "trait" href = "error/trait.FromExternalError.html" title = "trait winnow::error::FromExternalError" > FromExternalError< / a > < I, E2> ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Applies a function returning a < code > Result< / code > over the output of a parser.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "example-10" > < a class = "doc-anchor" href = "#example-10" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::digit1;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parse = digit1.try_map(|s: < span class = "kw-2" > & < / span > str| s.parse::< u8> ());
< span class = "comment" > // the parser will convert the result of digit1 to a number
< / span > < span class = "macro" > assert_eq!< / span > (parse.parse_peek(< span class = "string" > "123"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "number" > 123< / span > )));
< span class = "comment" > // this will fail if digit1 fails
< / span > < span class = "macro" > assert_eq!< / span > (parse.parse_peek(< span class = "string" > "abc"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "abc"< / span > , ErrorKind::Slice))));
< span class = "comment" > // this will fail if the mapped function fails (a `u8` is too small to hold `123456`)
< / span > < span class = "macro" > assert_eq!< / span > (parse.parse_peek(< span class = "string" > "123456"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "123456"< / span > , ErrorKind::Verify))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.verify_map" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#476-484" > source< / a > < h4 class = "code-header" > fn < a href = "#method.verify_map" class = "fn" > verify_map< / a > < G, O2> (self, map: G) -> < a class = "struct" href = "combinator/struct.VerifyMap.html" title = "struct winnow::combinator::VerifyMap" > VerifyMap< / a > < Self, G, I, O, O2, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> < a class = "enum" href = "https://doc.rust-lang.org/1.77.0/core/option/enum.Option.html" title = "enum core::option::Option" > Option< / a > < O2> ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Apply both < a href = "trait.Parser.html#method.verify" title = "method winnow::Parser::verify" > < code > Parser::verify< / code > < / a > and < a href = "trait.Parser.html#method.map" title = "method winnow::Parser::map" > < code > Parser::map< / code > < / a > .< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "example-11" > < a class = "doc-anchor" href = "#example-11" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::digit1;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parse = digit1.verify_map(|s: < span class = "kw-2" > & < / span > str| s.parse::< u8> ().ok());
< span class = "comment" > // the parser will convert the result of digit1 to a number
< / span > < span class = "macro" > assert_eq!< / span > (parse.parse_peek(< span class = "string" > "123"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "number" > 123< / span > )));
< span class = "comment" > // this will fail if digit1 fails
< / span > < span class = "macro" > assert_eq!< / span > (parse.parse_peek(< span class = "string" > "abc"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "abc"< / span > , ErrorKind::Slice))));
< span class = "comment" > // this will fail if the mapped function fails (a `u8` is too small to hold `123456`)
< / span > < span class = "macro" > assert_eq!< / span > (parse.parse_peek(< span class = "string" > "123456"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "123456"< / span > , ErrorKind::Verify))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.flat_map" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#519-526" > source< / a > < h4 class = "code-header" > fn < a href = "#method.flat_map" class = "fn" > flat_map< / a > < G, H, O2> (self, map: G) -> < a class = "struct" href = "combinator/struct.FlatMap.html" title = "struct winnow::combinator::FlatMap" > FlatMap< / a > < Self, G, H, I, O, O2, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> H,
2024-03-11 08:39:13 +00:00
H: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Creates a parser from the output of this one< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "example-12" > < a class = "doc-anchor" href = "#example-12" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::token::take;
< span class = "kw" > use < / span > winnow::binary::u8;
< span class = "kw" > fn < / span > length_take< < span class = "lifetime" > 's< / span > > (input: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > [u8]) -> PResult< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8], InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8]> > {
u8.flat_map(take).parse_next(input)
}
< span class = "macro" > assert_eq!< / span > (length_take.parse_peek(< span class = "kw-2" > & < / span > [< span class = "number" > 2< / span > , < span class = "number" > 0< / span > , < span class = "number" > 1< / span > , < span class = "number" > 2< / span > ][..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > [< span class = "number" > 2< / span > ][..], < span class = "kw-2" > & < / span > [< span class = "number" > 0< / span > , < span class = "number" > 1< / span > ][..])));
< span class = "macro" > assert_eq!< / span > (length_take.parse_peek(< span class = "kw-2" > & < / span > [< span class = "number" > 4< / span > , < span class = "number" > 0< / span > , < span class = "number" > 1< / span > , < span class = "number" > 2< / span > ][..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > [< span class = "number" > 0< / span > , < span class = "number" > 1< / span > , < span class = "number" > 2< / span > ][..], ErrorKind::Slice))));< / code > < / pre > < / div >
< p > which is the same as< / p >
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::token::take;
< span class = "kw" > use < / span > winnow::binary::u8;
< span class = "kw" > fn < / span > length_take< < span class = "lifetime" > 's< / span > > (input: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > [u8]) -> PResult< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8], InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8]> > {
< span class = "kw" > let < / span > length = u8.parse_next(input)< span class = "question-mark" > ?< / span > ;
< span class = "kw" > let < / span > data = take(length).parse_next(input)< span class = "question-mark" > ?< / span > ;
< span class = "prelude-val" > Ok< / span > (data)
}
< span class = "macro" > assert_eq!< / span > (length_take.parse_peek(< span class = "kw-2" > & < / span > [< span class = "number" > 2< / span > , < span class = "number" > 0< / span > , < span class = "number" > 1< / span > , < span class = "number" > 2< / span > ][..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > [< span class = "number" > 2< / span > ][..], < span class = "kw-2" > & < / span > [< span class = "number" > 0< / span > , < span class = "number" > 1< / span > ][..])));
< span class = "macro" > assert_eq!< / span > (length_take.parse_peek(< span class = "kw-2" > & < / span > [< span class = "number" > 4< / span > , < span class = "number" > 0< / span > , < span class = "number" > 1< / span > , < span class = "number" > 2< / span > ][..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > [< span class = "number" > 0< / span > , < span class = "number" > 1< / span > , < span class = "number" > 2< / span > ][..], ErrorKind::Slice))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.and_then" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#546-554" > source< / a > < h4 class = "code-header" > fn < a href = "#method.and_then" class = "fn" > and_then< / a > < G, O2> (self, inner: G) -> < a class = "struct" href = "combinator/struct.AndThen.html" title = "struct winnow::combinator::AndThen" > AndThen< / a > < Self, G, I, O, O2, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
G: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < O, O2, E> ,
O: < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > ,
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Applies a second parser over the output of the first one< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "example-13" > < a class = "doc-anchor" href = "#example-13" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::digit1;
< span class = "kw" > use < / span > winnow::token::take;
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > digits = take(< span class = "number" > 5u8< / span > ).and_then(digit1);
< span class = "macro" > assert_eq!< / span > (digits.parse_peek(< span class = "string" > "12345"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "string" > "12345"< / span > )));
< span class = "macro" > assert_eq!< / span > (digits.parse_peek(< span class = "string" > "123ab"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "string" > "123"< / span > )));
< span class = "macro" > assert_eq!< / span > (digits.parse_peek(< span class = "string" > "123"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "123"< / span > , ErrorKind::Slice))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.parse_to" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#577-585" > source< / a > < h4 class = "code-header" > fn < a href = "#method.parse_to" class = "fn" > parse_to< / a > < O2> (self) -> < a class = "struct" href = "combinator/struct.ParseTo.html" title = "struct winnow::combinator::ParseTo" > ParseTo< / a > < Self, I, O, O2, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
O: < a class = "trait" href = "stream/trait.ParseSlice.html" title = "trait winnow::stream::ParseSlice" > ParseSlice< / a > < O2> ,
2024-03-27 11:12:16 +00:00
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Apply < a href = "https://doc.rust-lang.org/1.77.0/core/str/traits/trait.FromStr.html" title = "trait core::str::traits::FromStr" > < code > std::str::FromStr< / code > < / a > to the output of the parser< / p >
< h5 id = "example-14" > < a class = "doc-anchor" href = "#example-14" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::{error::ErrMode,error::ErrorKind, error::InputError, Parser};
< span class = "kw" > use < / span > winnow::ascii::digit1;
< span class = "kw" > fn < / span > parser< < span class = "lifetime" > 's< / span > > (input: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > str) -> PResult< u64, InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str> > {
digit1.parse_to().parse_next(input)
}
< span class = "comment" > // the parser will count how many characters were returned by digit1
< / span > < span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "123456"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "number" > 123456< / span > )));
< span class = "comment" > // this will fail if digit1 fails
< / span > < span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "abc"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "abc"< / span > , ErrorKind::Slice))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.verify" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#609-619" > source< / a > < h4 class = "code-header" > fn < a href = "#method.verify" class = "fn" > verify< / a > < G, O2> (self, filter: G) -> < a class = "struct" href = "combinator/struct.Verify.html" title = "struct winnow::combinator::Verify" > Verify< / a > < Self, G, I, O, O2, E> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & O2< / a > ) -> < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.bool.html" > bool< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
2024-03-27 11:12:16 +00:00
O: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/borrow/trait.Borrow.html" title = "trait core::borrow::Borrow" > Borrow< / a > < O2> ,
O2: ?< a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Returns the output of the child parser if it satisfies a verification function.< / p >
< p > The verification function takes as argument a reference to the output of the
parser.< / p >
2024-03-27 11:12:16 +00:00
< h5 id = "example-15" > < a class = "doc-anchor" href = "#example-15" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code >
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parser = alpha1.verify(|s: < span class = "kw-2" > & < / span > str| s.len() == < span class = "number" > 4< / span > );
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "abcd"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ""< / span > , < span class = "string" > "abcd"< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "abcde"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "abcde"< / span > , ErrorKind::Verify))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "123abcd;"< / span > ),< span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "123abcd;"< / span > , ErrorKind::Slice))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.context" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#627-635" > source< / a > < h4 class = "code-header" > fn < a href = "#method.context" class = "fn" > context< / a > < C> (self, context: C) -> < a class = "struct" href = "combinator/struct.Context.html" title = "struct winnow::combinator::Context" > Context< / a > < Self, I, O, E, C> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
E: < a class = "trait" href = "error/trait.AddContext.html" title = "trait winnow::error::AddContext" > AddContext< / a > < I, C> ,
2024-03-27 11:12:16 +00:00
C: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title = "trait core::clone::Clone" > Clone< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/fmt/trait.Debug.html" title = "trait core::fmt::Debug" > Debug< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > If parsing fails, add context to the error< / p >
2024-03-11 08:39:13 +00:00
< p > This is used mainly to add user friendly information
to errors when backtracking through a parse tree.< / p >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.complete_err" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#653-658" > source< / a > < h4 class = "code-header" > fn < a href = "#method.complete_err" class = "fn" > complete_err< / a > (self) -> < a class = "struct" href = "combinator/struct.CompleteErr.html" title = "struct winnow::combinator::CompleteErr" > CompleteErr< / a > < Self> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Transforms < a href = "error/enum.ErrMode.html#variant.Incomplete" title = "variant winnow::error::ErrMode::Incomplete" > < code > Incomplete< / code > < / a > into < a href = "error/enum.ErrMode.html#variant.Backtrack" title = "variant winnow::error::ErrMode::Backtrack" > < code > Backtrack< / code > < / a > < / p >
< h5 id = "example-16" > < a class = "doc-anchor" href = "#example-16" > §< / a > Example< / h5 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code >
< span class = "kw" > let < / span > < span class = "kw-2" > mut < / span > parser = take(< span class = "number" > 5u8< / span > ).complete_err();
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(Partial::new(< span class = "string" > "abcdefg"< / span > )), < span class = "prelude-val" > Ok< / span > ((Partial::new(< span class = "string" > "fg"< / span > ), < span class = "string" > "abcde"< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(Partial::new(< span class = "string" > "abcd"< / span > )), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(Partial::new(< span class = "string" > "abcd"< / span > ), ErrorKind::Complete))));< / code > < / pre > < / div >
< / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.err_into" class = "method" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#662-668" > source< / a > < h4 class = "code-header" > fn < a href = "#method.err_into" class = "fn" > err_into< / a > < E2> (self) -> < a class = "struct" href = "combinator/struct.ErrInto.html" title = "struct winnow::combinator::ErrInto" > ErrInto< / a > < Self, I, O, E, E2> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
E: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.Into.html" title = "trait core::convert::Into" > Into< / a > < E2> ,< / div > < / h4 > < / section > < / summary > < div class = "docblock" > < p > Convert the parser’ s error to another type using < a href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.From.html" title = "trait core::convert::From" > < code > std::convert::From< / code > < / a > < / p >
< / div > < / details > < / div > < h2 id = "trait-implementations" class = "section-header" > Trait Implementations< a href = "#trait-implementations" class = "anchor" > §< / a > < / h2 > < div id = "trait-implementations-list" > < details class = "toggle implementors-toggle" open > < summary > < section id = "impl-Parser%3CI,+O,+E%3E-for-Box%3Cdyn+Parser%3CI,+O,+E%3E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1091-1096" > source< / a > < a href = "#impl-Parser%3CI,+O,+E%3E-for-Box%3Cdyn+Parser%3CI,+O,+E%3E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, I, O, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> for < a class = "struct" href = "https://doc.rust-lang.org/1.77.0/alloc/boxed/struct.Box.html" title = "struct alloc::boxed::Box" > Box< / a > < dyn < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> + 'a> < / h3 > < / section > < / summary > < div class = "impl-items" > < details class = "toggle method-toggle" open > < summary > < section id = "method.parse_next" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1093-1095" > source< / a > < a href = "#method.parse_next" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < O, E> < / h4 > < / section > < / summary > < div class = 'docblock' > Take tokens from the < a href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > < code > Stream< / code > < / a > , turning it into the output < a href = "trait.Parser.html#tymethod.parse_next" > Read more< / a > < / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.parse_peek-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#86-91" > source< / a > < a href = "#method.parse_peek-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#method.parse_peek" class = "fn" > parse_peek< / a > (& mut self, input: I) -> < a class = "type" href = "error/type.IResult.html" title = "type winnow::error::IResult" > IResult< / a > < I, O, E> < / h4 > < / section > < / summary > < div class = 'docblock' > Take tokens from the < a href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > < code > Stream< / code > < / a > , turning it into the output < a href = "trait.Parser.html#method.parse_peek" > Read more< / a > < / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.by_ref-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#137-142" > source< / a > < a href = "#method.by_ref-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#method.by_ref" class = "fn" > by_ref< / a > (& mut self) -> < a class = "struct" href = "combinator/struct.ByRef.html" title = "struct winnow::combinator::ByRef" > ByRef< / a > < '_, Self> < div class = "where" > where
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h4 > < / section > < / summary > < div class = 'docblock' > Treat < code > & mut Self< / code > as a parser < a href = "trait.Parser.html#method.by_ref" > Read more< / a > < / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.value-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#161-167" > source< / a > < a href = "#method.value-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#method.value" class = "fn" > value< / a > < O2> (self, val: O2) -> < a class = "struct" href = "combinator/struct.Value.html" title = "struct winnow::combinator::Value" > Value< / a > < Self, I, O, O2, E> < div class = "where" > where
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
O2: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title = "trait core::clone::Clone" > Clone< / a > ,< / div > < / h4 > < / section > < / summary > < div class = 'docblock' > Produce the provided value < a href = "trait.Parser.html#method.value" > Read more< / a > < / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.default_value-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#185-191" > source< / a > < a href = "#method.default_value-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#method.default_value" class = "fn" > default_value< / a > < O2> (self) -> < a class = "struct" href = "combinator/struct.DefaultValue.html" title = "struct winnow::combinator::DefaultValue" > DefaultValue< / a > < Self, I, O, O2, E> < div class = "where" > where
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
O2: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/default/trait.Default.html" title = "trait core::default::Default" > Default< / a > ,< / div > < / h4 > < / section > < / summary > < div class = 'docblock' > Produce a type’ s default value < a href = "trait.Parser.html#method.default_value" > Read more< / a > < / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.void-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#209-214" > source< / a > < a href = "#method.void-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#method.void" class = "fn" > void< / a > (self) -> < a class = "struct" href = "combinator/struct.Void.html" title = "struct winnow::combinator::Void" > Void< / a > < Self, I, O, E> < div class = "where" > where
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h4 > < / section > < / summary > < div class = 'docblock' > Discards the output of the < code > Parser< / code > < a href = "trait.Parser.html#method.void" > Read more< / a > < / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.output_into-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#238-244" > source< / a > < a href = "#method.output_into-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#method.output_into" class = "fn" > output_into< / a > < O2> (self) -> < a class = "struct" href = "combinator/struct.OutputInto.html" title = "struct winnow::combinator::OutputInto" > OutputInto< / a > < Self, I, O, O2, E> < div class = "where" > where
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
O: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.Into.html" title = "trait core::convert::Into" > Into< / a > < O2> ,< / div > < / h4 > < / section > < / summary > < div class = 'docblock' > Convert the parser’ s output to another type using < a href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.From.html" title = "trait core::convert::From" > < code > std::convert::From< / code > < / a > < a href = "trait.Parser.html#method.output_into" > Read more< / a > < / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.map-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#411-417" > source< / a > < a href = "#method.map-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#method.map" class = "fn" > map< / a > < G, O2> (self, map: G) -> < a class = "struct" href = "combinator/struct.Map.html" title = "struct winnow::combinator::Map" > Map< / a > < Self, G, I, O, O2, E> < div class = "where" > where
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> O2,
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h4 > < / section > < / summary > < div class = 'docblock' > Maps a function over the output of a parser < a href = "trait.Parser.html#method.map" > Read more< / a > < / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.flat_map-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#519-526" > source< / a > < a href = "#method.flat_map-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#method.flat_map" class = "fn" > flat_map< / a > < G, H, O2> (self, map: G) -> < a class = "struct" href = "combinator/struct.FlatMap.html" title = "struct winnow::combinator::FlatMap" > FlatMap< / a > < Self, G, H, I, O, O2, E> < div class = "where" > where
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> H,
2024-03-11 08:39:13 +00:00
H: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,< / div > < / h4 > < / section > < / summary > < div class = 'docblock' > Creates a parser from the output of this one < a href = "trait.Parser.html#method.flat_map" > Read more< / a > < / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.complete_err-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#653-658" > source< / a > < a href = "#method.complete_err-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#method.complete_err" class = "fn" > complete_err< / a > (self) -> < a class = "struct" href = "combinator/struct.CompleteErr.html" title = "struct winnow::combinator::CompleteErr" > CompleteErr< / a > < Self> < div class = "where" > where
2024-03-27 11:12:16 +00:00
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,< / div > < / h4 > < / section > < / summary > < div class = 'docblock' > Transforms < a href = "error/enum.ErrMode.html#variant.Incomplete" title = "variant winnow::error::ErrMode::Incomplete" > < code > Incomplete< / code > < / a > into < a href = "error/enum.ErrMode.html#variant.Backtrack" title = "variant winnow::error::ErrMode::Backtrack" > < code > Backtrack< / code > < / a > < a href = "trait.Parser.html#method.complete_err" > Read more< / a > < / div > < / details > < details class = "toggle method-toggle" open > < summary > < section id = "method.err_into-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#662-668" > source< / a > < a href = "#method.err_into-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "trait.Parser.html#method.err_into" class = "fn" > err_into< / a > < E2> (self) -> < a class = "struct" href = "combinator/struct.ErrInto.html" title = "struct winnow::combinator::ErrInto" > ErrInto< / a > < Self, I, O, E, E2> < div class = "where" > where
Self: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
E: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.Into.html" title = "trait core::convert::Into" > Into< / a > < E2> ,< / div > < / h4 > < / section > < / summary > < div class = 'docblock' > Convert the parser’ s error to another type using < a href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.From.html" title = "trait core::convert::From" > < code > std::convert::From< / code > < / a > < / div > < / details > < / div > < / details > < / div > < h2 id = "foreign-impls" class = "section-header" > Implementations on Foreign Types< a href = "#foreign-impls" class = "anchor" > §< / a > < / h2 > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+O,+E%3E-for-Box%3Cdyn+Parser%3CI,+O,+E%3E%3E-1" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1091-1096" > source< / a > < a href = "#impl-Parser%3CI,+O,+E%3E-for-Box%3Cdyn+Parser%3CI,+O,+E%3E%3E-1" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, I, O, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> for < a class = "struct" href = "https://doc.rust-lang.org/1.77.0/alloc/boxed/struct.Box.html" title = "struct alloc::boxed::Box" > Box< / a > < dyn < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> + 'a> < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-1" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1093-1095" > source< / a > < a href = "#method.parse_next-1" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < O, E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-%26str" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#916-925" > source< / a > < a href = "#impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-%26str" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 's, I, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> > < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > , E> for & 's < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.str.html" > str< / a > < div class = "where" > where
I: < a class = "trait" href = "stream/trait.Compare.html" title = "trait winnow::stream::Compare" > Compare< / a > < & 's < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.str.html" > str< / a > > + < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > + < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h3 > < / section > < / summary > < div class = "docblock" > < p > This is a shortcut for < a href = "token/fn.literal.html" title = "fn winnow::token::literal" > < code > literal< / code > < / a > .< / p >
< h4 id = "example-17" > < a class = "doc-anchor" href = "#example-17" > §< / a > Example< / h4 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code >
< span class = "kw" > fn < / span > parser< < span class = "lifetime" > 's< / span > > (s: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > str) -> PResult< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str, InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str> > {
alt((< span class = "string" > "Hello"< / span > , take(< span class = "number" > 5usize< / span > ))).parse_next(s)
}
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "Hello, World!"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ", World!"< / span > , < span class = "string" > "Hello"< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "Something"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > "hing"< / span > , < span class = "string" > "Somet"< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "Some"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "Some"< / span > , ErrorKind::Slice))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > ""< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > ""< / span > , ErrorKind::Slice))));< / code > < / pre > < / div >
2024-03-27 11:12:16 +00:00
< / div > < div class = "impl-items" > < section id = "method.parse_next-2" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#922-924" > source< / a > < a href = "#method.parse_next-2" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-%26%5Bu8%5D" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#793-802" > source< / a > < a href = "#impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-%26%5Bu8%5D" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 's, I, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> > < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > , E> for & 's [< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > ]< div class = "where" > where
I: < a class = "trait" href = "stream/trait.Compare.html" title = "trait winnow::stream::Compare" > Compare< / a > < & 's [< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > ]> + < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > + < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h3 > < / section > < / summary > < div class = "docblock" > < p > This is a shortcut for < a href = "token/fn.literal.html" title = "fn winnow::token::literal" > < code > literal< / code > < / a > .< / p >
< h4 id = "example-18" > < a class = "doc-anchor" href = "#example-18" > §< / a > Example< / h4 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code >
< span class = "kw" > fn < / span > parser< < span class = "lifetime" > 's< / span > > (s: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > [u8]) -> PResult< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8], InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8]> > {
alt((< span class = "kw-2" > & < / span > < span class = "string" > "Hello"< / span > [..], take(< span class = "number" > 5usize< / span > ))).parse_next(s)
}
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Hello, World!"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b", World!"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"Hello"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Something"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b"hing"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"Somet"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Some"< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b"Some"< / span > [..], ErrorKind::Slice))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b""< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b""< / span > [..], ErrorKind::Slice))));< / code > < / pre > < / div >
2024-03-27 11:12:16 +00:00
< / div > < div class = "impl-items" > < section id = "method.parse_next-3" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#799-801" > source< / a > < a href = "#method.parse_next-3" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-%26%5Bu8;+N%5D" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#854-863" > source< / a > < a href = "#impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-%26%5Bu8;+N%5D" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 's, I, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , const N: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.usize.html" > usize< / a > > < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > , E> for & 's [< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > ; < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.array.html" > N< / a > ]< div class = "where" > where
I: < a class = "trait" href = "stream/trait.Compare.html" title = "trait winnow::stream::Compare" > Compare< / a > < & 's [< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > ; < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.array.html" > N< / a > ]> + < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > + < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h3 > < / section > < / summary > < div class = "docblock" > < p > This is a shortcut for < a href = "token/fn.literal.html" title = "fn winnow::token::literal" > < code > literal< / code > < / a > .< / p >
< h4 id = "example-19" > < a class = "doc-anchor" href = "#example-19" > §< / a > Example< / h4 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code >
< span class = "kw" > fn < / span > parser< < span class = "lifetime" > 's< / span > > (s: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > [u8]) -> PResult< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8], InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8]> > {
alt((< span class = "string" > b"Hello"< / span > , take(< span class = "number" > 5usize< / span > ))).parse_next(s)
}
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Hello, World!"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b", World!"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"Hello"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Something"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b"hing"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"Somet"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Some"< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b"Some"< / span > [..], ErrorKind::Slice))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b""< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b""< / span > [..], ErrorKind::Slice))));< / code > < / pre > < / div >
2024-03-27 11:12:16 +00:00
< / div > < div class = "impl-items" > < section id = "method.parse_next-4" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#860-862" > source< / a > < a href = "#method.parse_next-4" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+char,+E%3E-for-char" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#762-773" > source< / a > < a href = "#impl-Parser%3CI,+char,+E%3E-for-char" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.char.html" > char< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.char.html" > char< / a > < div class = "where" > where
I: < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > + < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > + < a class = "trait" href = "stream/trait.Compare.html" title = "trait winnow::stream::Compare" > Compare< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.char.html" > char< / a > > ,
2024-03-11 08:39:13 +00:00
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h3 > < / section > < / summary > < div class = "docblock" > < p > This is a shortcut for < a href = "token/fn.one_of.html" title = "fn winnow::token::one_of" > < code > one_of< / code > < / a > .< / p >
2024-03-27 11:12:16 +00:00
< h4 id = "example-20" > < a class = "doc-anchor" href = "#example-20" > §< / a > Example< / h4 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > fn < / span > parser< < span class = "lifetime" > 's< / span > > (i: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > str) -> PResult< char, InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str> > {
< span class = "string" > 'a'< / span > .parse_next(i)
}
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "abc"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > "bc"< / span > , < span class = "string" > 'a'< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > " abc"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > " abc"< / span > , ErrorKind::Tag))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "bc"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "bc"< / span > , ErrorKind::Tag))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > ""< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > ""< / span > , ErrorKind::Tag))));< / code > < / pre > < / div >
2024-03-27 11:12:16 +00:00
< / div > < div class = "impl-items" > < section id = "method.parse_next-5" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#770-772" > source< / a > < a href = "#method.parse_next-5" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.char.html" > char< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+u8,+E%3E-for-u8" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#734-745" > source< / a > < a href = "#impl-Parser%3CI,+u8,+E%3E-for-u8" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > < div class = "where" > where
I: < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > + < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > + < a class = "trait" href = "stream/trait.Compare.html" title = "trait winnow::stream::Compare" > Compare< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > > ,
2024-03-11 08:39:13 +00:00
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h3 > < / section > < / summary > < div class = "docblock" > < p > This is a shortcut for < a href = "token/fn.one_of.html" title = "fn winnow::token::one_of" > < code > one_of< / code > < / a > .< / p >
2024-03-27 11:12:16 +00:00
< h4 id = "example-21" > < a class = "doc-anchor" href = "#example-21" > §< / a > Example< / h4 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > fn < / span > parser< < span class = "lifetime" > 's< / span > > (i: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > [u8]) -> PResult< u8, InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8]> > {
< span class = "string" > b'a'< / span > .parse_next(i)
}
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"abc"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b"bc"< / span > [..], < span class = "string" > b'a'< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b" abc"< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b" abc"< / span > [..], ErrorKind::Tag))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"bc"< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b"bc"< / span > [..], ErrorKind::Tag))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b""< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b""< / span > [..], ErrorKind::Tag))));< / code > < / pre > < / div >
2024-03-27 11:12:16 +00:00
< / div > < div class = "impl-items" > < section id = "method.parse_next-6" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#742-744" > source< / a > < a href = "#method.parse_next-6" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(),+E%3E-for-()" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#959-964" > source< / a > < a href = "#impl-Parser%3CI,+(),+E%3E-for-()" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> > < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.unit.html" > ()< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.unit.html" > ()< / a > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-7" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#961-963" > source< / a > < a href = "#method.parse_next-7" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, _i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.unit.html" > ()< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,),+E%3E-for-(P1,)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,),+E%3E-for-(P1,)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1,)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1,)< / a > < div class = "where" > where
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-8" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-8" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1,)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2),+E%3E-for-(P1,+P2)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2),+E%3E-for-(P1,+P2)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
2024-03-27 11:12:16 +00:00
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-9" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-9" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3),+E%3E-for-(P1,+P2,+P3)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3),+E%3E-for-(P1,+P2,+P3)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
2024-03-27 11:12:16 +00:00
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-10" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-10" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4),+E%3E-for-(P1,+P2,+P3,+P4)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4),+E%3E-for-(P1,+P2,+P3,+P4)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
2024-03-27 11:12:16 +00:00
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-11" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-11" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5),+E%3E-for-(P1,+P2,+P3,+P4,+P5)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5),+E%3E-for-(P1,+P2,+P3,+P4,+P5)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
2024-03-27 11:12:16 +00:00
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-12" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-12" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
2024-03-27 11:12:16 +00:00
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-13" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-13" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
2024-03-27 11:12:16 +00:00
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-14" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-14" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (& mut self, i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-15" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-15" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-16" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-16" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-17" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-17" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-18" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-18" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,
P12: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O12, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-19" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-19" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,
P12: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O12, E> ,
P13: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O13, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-20" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-20" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,
P12: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O12, E> ,
P13: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O13, E> ,
P14: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O14, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-21" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-21" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,
P12: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O12, E> ,
P13: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O13, E> ,
P14: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O14, E> ,
P15: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O15, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-22" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-22" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,
P12: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O12, E> ,
P13: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O13, E> ,
P14: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O14, E> ,
P15: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O15, E> ,
P16: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O16, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-23" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-23" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16,+O17),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16,+P17)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16,+O17),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16,+P17)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,
P12: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O12, E> ,
P13: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O13, E> ,
P14: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O14, E> ,
P15: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O15, E> ,
P16: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O16, E> ,
P17: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O17, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-24" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-24" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16,+O17,+O18),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16,+P17,+P18)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16,+O17,+O18),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16,+P17,+P18)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,
P12: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O12, E> ,
P13: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O13, E> ,
P14: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O14, E> ,
P15: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O15, E> ,
P16: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O16, E> ,
P17: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O17, E> ,
P18: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O18, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-25" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-25" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16,+O17,+O18,+O19),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16,+P17,+P18,+P19)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16,+O17,+O18,+O19),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16,+P17,+P18,+P19)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,
P12: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O12, E> ,
P13: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O13, E> ,
P14: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O14, E> ,
P15: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O15, E> ,
P16: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O16, E> ,
P17: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O17, E> ,
P18: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O18, E> ,
P19: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O19, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-26" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-26" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16,+O17,+O18,+O19,+O20),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16,+P17,+P18,+P19,+P20)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16,+O17,+O18,+O19,+O20),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16,+P17,+P18,+P19,+P20)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, O20, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, O20)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,
P12: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O12, E> ,
P13: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O13, E> ,
P14: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O14, E> ,
P15: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O15, E> ,
P16: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O16, E> ,
P17: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O17, E> ,
P18: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O18, E> ,
P19: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O19, E> ,
P20: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O20, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-27" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-27" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, O20)< / a > , E> < / h4 > < / section > < / div > < / details > < details class = "toggle implementors-toggle" > < summary > < section id = "impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16,+O17,+O18,+O19,+O20,+O21),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16,+P17,+P18,+P19,+P20,+P21)" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#impl-Parser%3CI,+(O1,+O2,+O3,+O4,+O5,+O6,+O7,+O8,+O9,+O10,+O11,+O12,+O13,+O14,+O15,+O16,+O17,+O18,+O19,+O20,+O21),+E%3E-for-(P1,+P2,+P3,+P4,+P5,+P6,+P7,+P8,+P9,+P10,+P11,+P12,+P13,+P14,+P15,+P16,+P17,+P18,+P19,+P20,+P21)" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > , O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, O20, O21, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, O20, O21)< / a > , E> for < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (P1, P2, P3, P4, P5, P6, P7, P8, P9, P10, P11, P12, P13, P14, P15, P16, P17, P18, P19, P20, P21)< / a > < div class = "where" > where
2024-03-11 08:39:13 +00:00
P1: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O1, E> ,
P2: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,
P3: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O3, E> ,
P4: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O4, E> ,
P5: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O5, E> ,
P6: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O6, E> ,
P7: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O7, E> ,
P8: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O8, E> ,
P9: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O9, E> ,
P10: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O10, E> ,
P11: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O11, E> ,
P12: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O12, E> ,
P13: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O13, E> ,
P14: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O14, E> ,
P15: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O15, E> ,
P16: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O16, E> ,
P17: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O17, E> ,
P18: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O18, E> ,
P19: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O19, E> ,
P20: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O20, E> ,
P21: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O21, E> ,< / div > < / h3 > < / section > < / summary > < div class = "impl-items" > < section id = "method.parse_next-28" class = "method trait-impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#1063-1085" > source< / a > < a href = "#method.parse_next-28" class = "anchor" > §< / a > < h4 class = "code-header" > fn < a href = "#tymethod.parse_next" class = "fn" > parse_next< / a > (
& mut self,
2024-03-27 11:12:16 +00:00
i: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a >
) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.tuple.html" > (O1, O2, O3, O4, O5, O6, O7, O8, O9, O10, O11, O12, O13, O14, O15, O16, O17, O18, O19, O20, O21)< / a > , E> < / h4 > < / section > < / div > < / details > < h2 id = "implementors" class = "section-header" > Implementors< a href = "#implementors" class = "anchor" > §< / a > < / h2 > < div id = "implementors-list" > < section id = "impl-Parser%3CI,+O,+E%3E-for-F" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#708-717" > source< / a > < a href = "#impl-Parser%3CI,+O,+E%3E-for-F" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'a, I, O, E, F> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> for F< div class = "where" > where
F: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & mut I< / a > ) -> < a class = "type" href = "error/type.PResult.html" title = "type winnow::error::PResult" > PResult< / a > < O, E> + 'a,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O,+E%3E-for-ByRef%3C'p,+P%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#28-36" > source< / a > < a href = "#impl-Parser%3CI,+O,+E%3E-for-ByRef%3C'p,+P%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 'p, I, O, E, P> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> for < a class = "struct" href = "combinator/struct.ByRef.html" title = "struct winnow::combinator::ByRef" > ByRef< / a > < 'p, P> < div class = "where" > where
2024-03-27 11:12:16 +00:00
P: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-Caseless%3C%26str%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#948-957" > source< / a > < a href = "#impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-Caseless%3C%26str%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 's, I, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> > < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > , E> for < a class = "struct" href = "ascii/struct.Caseless.html" title = "struct winnow::ascii::Caseless" > Caseless< / a > < & 's < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.str.html" > str< / a > > < div class = "where" > where
I: < a class = "trait" href = "stream/trait.Compare.html" title = "trait winnow::stream::Compare" > Compare< / a > < < a class = "struct" href = "ascii/struct.Caseless.html" title = "struct winnow::ascii::Caseless" > Caseless< / a > < & 's < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.str.html" > str< / a > > > + < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > + < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h3 > < / section > < div class = "docblock" > < p > This is a shortcut for < a href = "token/fn.literal.html" title = "fn winnow::token::literal" > < code > literal< / code > < / a > .< / p >
< h4 id = "example-22" > < a class = "doc-anchor" href = "#example-22" > §< / a > Example< / h4 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code >
< span class = "kw" > fn < / span > parser< < span class = "lifetime" > 's< / span > > (s: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > str) -> PResult< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str, InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > str> > {
alt((Caseless(< span class = "string" > "hello"< / span > ), take(< span class = "number" > 5usize< / span > ))).parse_next(s)
}
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "Hello, World!"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ", World!"< / span > , < span class = "string" > "Hello"< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "hello, World!"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ", World!"< / span > , < span class = "string" > "hello"< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "HeLlo, World!"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > ", World!"< / span > , < span class = "string" > "HeLlo"< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "Something"< / span > ), < span class = "prelude-val" > Ok< / span > ((< span class = "string" > "hing"< / span > , < span class = "string" > "Somet"< / span > )));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > "Some"< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > "Some"< / span > , ErrorKind::Slice))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "string" > ""< / span > ), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "string" > ""< / span > , ErrorKind::Slice))));< / code > < / pre > < / div >
2024-03-27 11:12:16 +00:00
< / div > < section id = "impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-Caseless%3C%26%5Bu8%5D%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#825-834" > source< / a > < a href = "#impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-Caseless%3C%26%5Bu8%5D%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 's, I, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> > < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > , E> for < a class = "struct" href = "ascii/struct.Caseless.html" title = "struct winnow::ascii::Caseless" > Caseless< / a > < & 's [< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > ]> < div class = "where" > where
I: < a class = "trait" href = "stream/trait.Compare.html" title = "trait winnow::stream::Compare" > Compare< / a > < < a class = "struct" href = "ascii/struct.Caseless.html" title = "struct winnow::ascii::Caseless" > Caseless< / a > < & 's [< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > ]> > + < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > + < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h3 > < / section > < div class = "docblock" > < p > This is a shortcut for < a href = "token/fn.literal.html" title = "fn winnow::token::literal" > < code > literal< / code > < / a > .< / p >
< h4 id = "example-23" > < a class = "doc-anchor" href = "#example-23" > §< / a > Example< / h4 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::Caseless;
< span class = "kw" > fn < / span > parser< < span class = "lifetime" > 's< / span > > (s: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > [u8]) -> PResult< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8], InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8]> > {
alt((Caseless(< span class = "kw-2" > & < / span > < span class = "string" > "hello"< / span > [..]), take(< span class = "number" > 5usize< / span > ))).parse_next(s)
}
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Hello, World!"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b", World!"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"Hello"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"hello, World!"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b", World!"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"hello"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"HeLlo, World!"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b", World!"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"HeLlo"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Something"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b"hing"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"Somet"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Some"< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b"Some"< / span > [..], ErrorKind::Slice))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b""< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b""< / span > [..], ErrorKind::Slice))));< / code > < / pre > < / div >
2024-03-27 11:12:16 +00:00
< / div > < section id = "impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-Caseless%3C%26%5Bu8;+N%5D%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/parser.rs.html#886-896" > source< / a > < a href = "#impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-Caseless%3C%26%5Bu8;+N%5D%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< 's, I, E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> , const N: < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.usize.html" > usize< / a > > < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > , E> for < a class = "struct" href = "ascii/struct.Caseless.html" title = "struct winnow::ascii::Caseless" > Caseless< / a > < & 's [< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > ; < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.array.html" > N< / a > ]> < div class = "where" > where
I: < a class = "trait" href = "stream/trait.Compare.html" title = "trait winnow::stream::Compare" > Compare< / a > < < a class = "struct" href = "ascii/struct.Caseless.html" title = "struct winnow::ascii::Caseless" > Caseless< / a > < & 's [< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.u8.html" > u8< / a > ; < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.array.html" > N< / a > ]> > + < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > + < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h3 > < / section > < div class = "docblock" > < p > This is a shortcut for < a href = "token/fn.literal.html" title = "fn winnow::token::literal" > < code > literal< / code > < / a > .< / p >
< h4 id = "example-24" > < a class = "doc-anchor" href = "#example-24" > §< / a > Example< / h4 >
2024-03-11 08:39:13 +00:00
< div class = "example-wrap" > < pre class = "rust rust-example-rendered" > < code > < span class = "kw" > use < / span > winnow::ascii::Caseless;
< span class = "kw" > fn < / span > parser< < span class = "lifetime" > 's< / span > > (s: < span class = "kw-2" > & mut & < / span > < span class = "lifetime" > 's < / span > [u8]) -> PResult< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8], InputError< < span class = "kw-2" > & < / span > < span class = "lifetime" > 's < / span > [u8]> > {
alt((Caseless(< span class = "string" > b"hello"< / span > ), take(< span class = "number" > 5usize< / span > ))).parse_next(s)
}
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Hello, World!"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b", World!"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"Hello"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"hello, World!"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b", World!"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"hello"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"HeLlo, World!"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b", World!"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"HeLlo"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Something"< / span > [..]), < span class = "prelude-val" > Ok< / span > ((< span class = "kw-2" > & < / span > < span class = "string" > b"hing"< / span > [..], < span class = "kw-2" > & < / span > < span class = "string" > b"Somet"< / span > [..])));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b"Some"< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b"Some"< / span > [..], ErrorKind::Slice))));
< span class = "macro" > assert_eq!< / span > (parser.parse_peek(< span class = "kw-2" > & < / span > < span class = "string" > b""< / span > [..]), < span class = "prelude-val" > Err< / span > (ErrMode::Backtrack(InputError::new(< span class = "kw-2" > & < / span > < span class = "string" > b""< / span > [..], ErrorKind::Slice))));< / code > < / pre > < / div >
< / div > < section id = "impl-Parser%3CI,+O2,+E%3E-for-FlatMap%3CF,+G,+H,+I,+O,+O2,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#350-361" > source< / a > < a href = "#impl-Parser%3CI,+O2,+E%3E-for-FlatMap%3CF,+G,+H,+I,+O,+O2,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, G, H, I, O, O2, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> for < a class = "struct" href = "combinator/struct.FlatMap.html" title = "struct winnow::combinator::FlatMap" > FlatMap< / a > < F, G, H, I, O, O2, E> < div class = "where" > where
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> H,
2024-03-11 08:39:13 +00:00
H: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O2,+E%3E-for-AndThen%3CF,+G,+I,+O,+O2,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#238-256" > source< / a > < a href = "#impl-Parser%3CI,+O2,+E%3E-for-AndThen%3CF,+G,+I,+O,+O2,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, G, I, O, O2, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> for < a class = "struct" href = "combinator/struct.AndThen.html" title = "struct winnow::combinator::AndThen" > AndThen< / a > < F, G, I, O, O2, E> < div class = "where" > where
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
G: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < O, O2, E> ,
O: < a class = "trait" href = "stream/trait.StreamIsPartial.html" title = "trait winnow::stream::StreamIsPartial" > StreamIsPartial< / a > ,
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O2,+E%3E-for-Map%3CF,+G,+I,+O,+O2,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#71-83" > source< / a > < a href = "#impl-Parser%3CI,+O2,+E%3E-for-Map%3CF,+G,+I,+O,+O2,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, G, I, O, O2, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> for < a class = "struct" href = "combinator/struct.Map.html" title = "struct winnow::combinator::Map" > Map< / a > < F, G, I, O, O2, E> < div class = "where" > where
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> O2,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O2,+E%3E-for-VerifyMap%3CF,+G,+I,+O,+O2,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#181-199" > source< / a > < a href = "#impl-Parser%3CI,+O2,+E%3E-for-VerifyMap%3CF,+G,+I,+O,+O2,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, G, I, O, O2, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> for < a class = "struct" href = "combinator/struct.VerifyMap.html" title = "struct winnow::combinator::VerifyMap" > VerifyMap< / a > < F, G, I, O, O2, E> < div class = "where" > where
2024-03-11 08:39:13 +00:00
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> < a class = "enum" href = "https://doc.rust-lang.org/1.77.0/core/option/enum.Option.html" title = "enum core::option::Option" > Option< / a > < O2> ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O,+E%3E-for-Verify%3CF,+G,+I,+O,+O2,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#437-457" > source< / a > < a href = "#impl-Parser%3CI,+O,+E%3E-for-Verify%3CF,+G,+I,+O,+O2,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, G, I, O, O2, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> for < a class = "struct" href = "combinator/struct.Verify.html" title = "struct winnow::combinator::Verify" > Verify< / a > < F, G, I, O, O2, E> < div class = "where" > where
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (< a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.reference.html" > & O2< / a > ) -> < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.bool.html" > bool< / a > ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
2024-03-27 11:12:16 +00:00
O: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/borrow/trait.Borrow.html" title = "trait core::borrow::Borrow" > Borrow< / a > < O2> ,
O2: ?< a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/marker/trait.Sized.html" title = "trait core::marker::Sized" > Sized< / a > ,
2024-03-11 08:39:13 +00:00
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O2,+E%3E-for-TryMap%3CF,+G,+I,+O,+O2,+E,+E2%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#124-142" > source< / a > < a href = "#impl-Parser%3CI,+O2,+E%3E-for-TryMap%3CF,+G,+I,+O,+O2,+E,+E2%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, G, I, O, O2, E, E2> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> for < a class = "struct" href = "combinator/struct.TryMap.html" title = "struct winnow::combinator::TryMap" > TryMap< / a > < F, G, I, O, O2, E, E2> < div class = "where" > where
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
G: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/ops/function/trait.FnMut.html" title = "trait core::ops::function::FnMut" > FnMut< / a > (O) -> < a class = "enum" href = "https://doc.rust-lang.org/1.77.0/core/result/enum.Result.html" title = "enum core::result::Result" > Result< / a > < O2, E2> ,
2024-03-11 08:39:13 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
E: < a class = "trait" href = "error/trait.FromExternalError.html" title = "trait winnow::error::FromExternalError" > FromExternalError< / a > < I, E2> ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+(O,+%3CI+as+Stream%3E::Slice),+E%3E-for-WithRecognized%3CF,+I,+O,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#658-676" > source< / a > < a href = "#impl-Parser%3CI,+(O,+%3CI+as+Stream%3E::Slice),+E%3E-for-WithRecognized%3CF,+I,+O,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, I, O, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, (O, < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > ), E> for < a class = "struct" href = "combinator/struct.WithRecognized.html" title = "struct winnow::combinator::WithRecognized" > WithRecognized< / a > < F, I, O, E> < div class = "where" > where
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+(O,+Range%3Cusize%3E),+E%3E-for-WithSpan%3CF,+I,+O,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#751-764" > source< / a > < a href = "#impl-Parser%3CI,+(O,+Range%3Cusize%3E),+E%3E-for-WithSpan%3CF,+I,+O,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, I, O, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, (O, < a class = "struct" href = "https://doc.rust-lang.org/1.77.0/core/ops/range/struct.Range.html" title = "struct core::ops::range::Range" > Range< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.usize.html" > usize< / a > > ), E> for < a class = "struct" href = "combinator/struct.WithSpan.html" title = "struct winnow::combinator::WithSpan" > WithSpan< / a > < F, I, O, E> < div class = "where" > where
2024-03-11 08:39:13 +00:00
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > + < a class = "trait" href = "stream/trait.Location.html" title = "trait winnow::stream::Location" > Location< / a > ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+(),+E%3E-for-Void%3CF,+I,+O,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#570-578" > source< / a > < a href = "#impl-Parser%3CI,+(),+E%3E-for-Void%3CF,+I,+O,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, I, O, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.unit.html" > ()< / a > , E> for < a class = "struct" href = "combinator/struct.Void.html" title = "struct winnow::combinator::Void" > Void< / a > < F, I, O, E> < div class = "where" > where
2024-03-11 08:39:13 +00:00
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O,+E%3E-for-CompleteErr%3CF%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#376-394" > source< / a > < a href = "#impl-Parser%3CI,+O,+E%3E-for-CompleteErr%3CF%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, I, O, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> for < a class = "struct" href = "combinator/struct.CompleteErr.html" title = "struct winnow::combinator::CompleteErr" > CompleteErr< / a > < F> < div class = "where" > where
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O,+E%3E-for-Context%3CF,+I,+O,+E,+C%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#890-908" > source< / a > < a href = "#impl-Parser%3CI,+O,+E%3E-for-Context%3CF,+I,+O,+E,+C%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, I, O, E, C> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> for < a class = "struct" href = "combinator/struct.Context.html" title = "struct winnow::combinator::Context" > Context< / a > < F, I, O, E, C> < div class = "where" > where
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
E: < a class = "trait" href = "error/trait.AddContext.html" title = "trait winnow::error::AddContext" > AddContext< / a > < I, C> ,
2024-03-27 11:12:16 +00:00
C: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title = "trait core::clone::Clone" > Clone< / a > + < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/fmt/trait.Debug.html" title = "trait core::fmt::Debug" > Debug< / a > ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O,+E2%3E-for-ErrInto%3CF,+I,+O,+E,+E2%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#839-853" > source< / a > < a href = "#impl-Parser%3CI,+O,+E2%3E-for-ErrInto%3CF,+I,+O,+E,+E2%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, I, O, E, E2> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E2> for < a class = "struct" href = "combinator/struct.ErrInto.html" title = "struct winnow::combinator::ErrInto" > ErrInto< / a > < F, I, O, E, E2> < div class = "where" > where
2024-03-11 08:39:13 +00:00
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
E: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.Into.html" title = "trait core::convert::Into" > Into< / a > < E2> ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O2,+E%3E-for-DefaultValue%3CF,+I,+O,+O2,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#532-541" > source< / a > < a href = "#impl-Parser%3CI,+O2,+E%3E-for-DefaultValue%3CF,+I,+O,+O2,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, I, O, O2, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> for < a class = "struct" href = "combinator/struct.DefaultValue.html" title = "struct winnow::combinator::DefaultValue" > DefaultValue< / a > < F, I, O, O2, E> < div class = "where" > where
2024-03-11 08:39:13 +00:00
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
O2: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/default/trait.Default.html" title = "trait core::default::Default" > Default< / a > ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O2,+E%3E-for-OutputInto%3CF,+I,+O,+O2,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#797-806" > source< / a > < a href = "#impl-Parser%3CI,+O2,+E%3E-for-OutputInto%3CF,+I,+O,+O2,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, I, O, O2, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> for < a class = "struct" href = "combinator/struct.OutputInto.html" title = "struct winnow::combinator::OutputInto" > OutputInto< / a > < F, I, O, O2, E> < div class = "where" > where
2024-03-11 08:39:13 +00:00
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
O: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/convert/trait.Into.html" title = "trait core::convert::Into" > Into< / a > < O2> ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O2,+E%3E-for-Value%3CF,+I,+O,+O2,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#490-499" > source< / a > < a href = "#impl-Parser%3CI,+O2,+E%3E-for-Value%3CF,+I,+O,+O2,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< F, I, O, O2, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> for < a class = "struct" href = "combinator/struct.Value.html" title = "struct winnow::combinator::Value" > Value< / a > < F, I, O, O2, E> < div class = "where" > where
2024-03-11 08:39:13 +00:00
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
O2: < a class = "trait" href = "https://doc.rust-lang.org/1.77.0/core/clone/trait.Clone.html" title = "trait core::clone::Clone" > Clone< / a > ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-Recognize%3CF,+I,+O,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#609-627" > source< / a > < a href = "#impl-Parser%3CI,+%3CI+as+Stream%3E::Slice,+E%3E-for-Recognize%3CF,+I,+O,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I, O, E, F> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < I as < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > > ::< a class = "associatedtype" href = "stream/trait.Stream.html#associatedtype.Slice" title = "type winnow::stream::Stream::Slice" > Slice< / a > , E> for < a class = "struct" href = "combinator/struct.Recognize.html" title = "struct winnow::combinator::Recognize" > Recognize< / a > < F, I, O, E> < div class = "where" > where
2024-03-11 08:39:13 +00:00
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
2024-03-27 11:12:16 +00:00
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+Range%3Cusize%3E,+E%3E-for-Span%3CF,+I,+O,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#707-720" > source< / a > < a href = "#impl-Parser%3CI,+Range%3Cusize%3E,+E%3E-for-Span%3CF,+I,+O,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< I, O, E, F> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, < a class = "struct" href = "https://doc.rust-lang.org/1.77.0/core/ops/range/struct.Range.html" title = "struct core::ops::range::Range" > Range< / a > < < a class = "primitive" href = "https://doc.rust-lang.org/1.77.0/std/primitive.usize.html" > usize< / a > > , E> for < a class = "struct" href = "combinator/struct.Span.html" title = "struct winnow::combinator::Span" > Span< / a > < F, I, O, E> < div class = "where" > where
2024-03-11 08:39:13 +00:00
F: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > + < a class = "trait" href = "stream/trait.Location.html" title = "trait winnow::stream::Location" > Location< / a > ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+C,+E%3E-for-Repeat%3CP,+I,+O,+C,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/multi.rs.html#278-301" > source< / a > < a href = "#impl-Parser%3CI,+C,+E%3E-for-Repeat%3CP,+I,+O,+C,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< P, I, O, C, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, C, E> for < a class = "struct" href = "combinator/struct.Repeat.html" title = "struct winnow::combinator::Repeat" > Repeat< / a > < P, I, O, C, E> < div class = "where" > where
P: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
C: < a class = "trait" href = "stream/trait.Accumulate.html" title = "trait winnow::stream::Accumulate" > Accumulate< / a > < O> ,
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h3 > < / section > < section id = "impl-Parser%3CI,+O2,+E%3E-for-ParseTo%3CP,+I,+O,+O2,+E%3E" class = "impl" > < a class = "src rightside" href = "../src/winnow/combinator/parser.rs.html#293-311" > source< / a > < a href = "#impl-Parser%3CI,+O2,+E%3E-for-ParseTo%3CP,+I,+O,+O2,+E%3E" class = "anchor" > §< / a > < h3 class = "code-header" > impl< P, I, O, O2, E> < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O2, E> for < a class = "struct" href = "combinator/struct.ParseTo.html" title = "struct winnow::combinator::ParseTo" > ParseTo< / a > < P, I, O, O2, E> < div class = "where" > where
P: < a class = "trait" href = "trait.Parser.html" title = "trait winnow::Parser" > Parser< / a > < I, O, E> ,
I: < a class = "trait" href = "stream/trait.Stream.html" title = "trait winnow::stream::Stream" > Stream< / a > ,
O: < a class = "trait" href = "stream/trait.ParseSlice.html" title = "trait winnow::stream::ParseSlice" > ParseSlice< / a > < O2> ,
E: < a class = "trait" href = "error/trait.ParserError.html" title = "trait winnow::error::ParserError" > ParserError< / a > < I> ,< / div > < / h3 > < / section > < / div > < script src = "../trait.impl/winnow/parser/trait.Parser.js" data-ignore-extern-crates = "std,alloc" async > < / script > < / section > < / div > < / main > < / body > < / html >