diff options
author | 2024-11-10 22:28:55 +0000 | |
---|---|---|
committer | 2024-11-10 22:28:55 +0000 | |
commit | 6d4832480b1804652bb4faa33b361ffb43734270 (patch) | |
tree | c79d65f833283d43e75f1cb4518a682b7933a049 /src/xml/parsers.rs | |
parent | 140af50536ebc32ae6461852daa2df0fc2d197ca (diff) | |
download | peanuts-6d4832480b1804652bb4faa33b361ffb43734270.tar.gz peanuts-6d4832480b1804652bb4faa33b361ffb43734270.tar.bz2 peanuts-6d4832480b1804652bb4faa33b361ffb43734270.zip |
WIP: impl Stream for Reader
Diffstat (limited to '')
-rw-r--r-- | src/xml/parsers.rs | 17 |
1 files changed, 17 insertions, 0 deletions
diff --git a/src/xml/parsers.rs b/src/xml/parsers.rs index 3f67be7..3cbefd3 100644 --- a/src/xml/parsers.rs +++ b/src/xml/parsers.rs @@ -733,6 +733,23 @@ impl<'s> Parser<'s, ETag<'s>> for ETag<'s> { } } +impl<'s> Parser<'s, ContentItem<'s>> for ContentItem<'s> { + fn parse(input: &'s str) -> IResult<&str, ContentItem<'s>> { + alt(( + map(CharData::parse, |char_data| { + ContentItem::CharData(char_data) + }), + map(Element::parse, |element| ContentItem::Element(element)), + map(Reference::parse, |reference| { + ContentItem::Reference(reference) + }), + map(CDSect::parse, |cd_sect| ContentItem::CDSect(cd_sect)), + map(PI::parse, |pi| ContentItem::PI(pi)), + map(Comment::parse, |comment| ContentItem::Comment(comment)), + ))(input) + } +} + /// [43] content ::= CharData? ((element | Reference | CDSect | PI | Comment) CharData?)* impl<'s> Parser<'s, Content<'s>> for Content<'s> { fn parse(input: &'s str) -> IResult<&str, Content<'s>> { |