aboutsummaryrefslogtreecommitdiffstats
path: root/src/element.rs
diff options
context:
space:
mode:
authorLibravatar cel 🌸 <cel@bunny.garden>2024-11-29 02:10:19 +0000
committerLibravatar cel 🌸 <cel@bunny.garden>2024-11-29 02:10:19 +0000
commit2dae043e8ffcb030699f3523568544676e370b53 (patch)
tree52669190c01bd5d7da03d1c9181d00eb23a21124 /src/element.rs
parentaa940a8eac74aca8cd3c202a05092538d1140dda (diff)
downloadpeanuts-2dae043e8ffcb030699f3523568544676e370b53.tar.gz
peanuts-2dae043e8ffcb030699f3523568544676e370b53.tar.bz2
peanuts-2dae043e8ffcb030699f3523568544676e370b53.zip
add some tracing
Diffstat (limited to 'src/element.rs')
-rw-r--r--src/element.rs17
1 files changed, 15 insertions, 2 deletions
diff --git a/src/element.rs b/src/element.rs
index 98a3315..1f78419 100644
--- a/src/element.rs
+++ b/src/element.rs
@@ -8,6 +8,8 @@ use std::{
str::FromStr,
};
+use tracing::debug;
+
use crate::{
error::{DeserializeError, Error},
xml::{self, parsers_complete::Parser, Attribute},
@@ -322,17 +324,28 @@ impl Element {
let mut children = Vec::new();
loop {
let child = self.content.front();
+ debug!("child: {:?}", child);
if let Some(child) = child {
match child {
Content::Element(element) => {
if let Ok(child) = <T as FromElement>::from_element(element.clone()) {
+ debug!("parsed child");
children.push(child);
self.content.pop_front();
+ } else {
+ debug!("failed to parse child");
+ return Ok(children);
}
}
Content::Text(_) => return Ok(children),
- Content::PI => {}
- Content::Comment(_) => {}
+ Content::PI => {
+ self.content.pop_front();
+ continue;
+ }
+ Content::Comment(_) => {
+ self.content.pop_front();
+ continue;
+ }
}
} else {
return Ok(children);