aboutsummaryrefslogtreecommitdiffstats
path: root/src/xml/parsers_complete.rs
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@bunny.garden>2024-11-19 14:52:14 +0000
committerLibravatar cel 🌸 <cel@bunny.garden>2024-11-19 14:52:14 +0000
commitc8ed16a2d1d1f1b5278936eeadeae87da7cb104e (patch)
treea05ee9522535faab24ad2917918f30177a1aa712 /src/xml/parsers_complete.rs
parent4c235b972e2400bd2bb92b74b12558b485dc7142 (diff)
downloadpeanuts-c8ed16a2d1d1f1b5278936eeadeae87da7cb104e.tar.gz
peanuts-c8ed16a2d1d1f1b5278936eeadeae87da7cb104e.tar.bz2
peanuts-c8ed16a2d1d1f1b5278936eeadeae87da7cb104e.zip
store only namespace name in qualified name, not namespace declaration
Diffstat (limited to '')
-rw-r--r--src/xml/parsers_complete.rs13
1 files changed, 13 insertions, 0 deletions
diff --git a/src/xml/parsers_complete.rs b/src/xml/parsers_complete.rs
index b057f62..900a3dd 100644
--- a/src/xml/parsers_complete.rs
+++ b/src/xml/parsers_complete.rs
@@ -30,6 +30,19 @@ pub trait Parser<'s> {
type Output;
fn parse(input: &'s str) -> IResult<&str, Self::Output>;
+
+ fn parse_full(input: &'s str) -> crate::Result<Self::Output> {
+ match <Self as Parser>::parse(input) {
+ Ok((rest, output)) => {
+ if rest.is_empty() {
+ return Ok(output);
+ } else {
+ return Err(crate::error::Error::ExtraData(rest.to_string()));
+ }
+ }
+ Result::Err(e) => return Err(crate::error::Error::ParseError(e.to_string())),
+ }
+ }
}
/// [1] NSAttName ::= PrefixedAttName | DefaultAttName