refactor(org): debug_validate function

This commit is contained in:
PoiScript 2019-10-01 20:46:44 +08:00
parent 4fd929fbfc
commit 195e97e62b
3 changed files with 24 additions and 35 deletions

View file

@ -104,7 +104,6 @@ impl Org<'_> {
| Element::Comment { .. }
| Element::FixedWidth { .. }
| Element::Keyword(_)
| Element::Drawer(_)
| Element::Rule
| Element::Cookie(_)
| Element::Table(Table::TableEl { .. })
@ -134,7 +133,7 @@ impl Org<'_> {
}
// TableCell is a container but it might
// not contains anything, e.g. `||||||`
Element::TableCell => (),
Element::Drawer(_) | Element::TableCell => (),
}
}
Ok(())
@ -145,4 +144,16 @@ impl Org<'_> {
pub fn check(&self) -> Result<(), OrgizeError> {
self.validate()
}
pub(crate) fn debug_validate(&self) {
if cfg!(debug_assertions) {
if let Err(err) = self.validate() {
panic!(
"Validation error: {:?} at element: {:?}",
err,
err.element(self)
);
}
}
}
}

View file

@ -83,9 +83,7 @@ impl HeadlineNode {
self.title_mut(org).raw = content;
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
}
pub fn set_section_content<'a, S: Into<Cow<'a, str>>>(self, content: S, org: &mut Org<'a>) {
@ -114,9 +112,7 @@ impl HeadlineNode {
),
}
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
}
pub fn parent(self, org: &Org<'_>) -> Option<HeadlineNode> {
@ -167,9 +163,7 @@ impl HeadlineNode {
pub fn detach(self, org: &mut Org<'_>) {
self.node.detach(&mut org.arena);
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
}
pub fn is_detached(self, org: &Org<'_>) -> bool {
@ -205,9 +199,7 @@ impl HeadlineNode {
self.node.append(headline.node, &mut org.arena);
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
Ok(())
}
@ -229,9 +221,7 @@ impl HeadlineNode {
self.title_node.insert_after(headline.node, &mut org.arena);
}
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
Ok(())
}
@ -253,9 +243,7 @@ impl HeadlineNode {
self.node.insert_before(headline.node, &mut org.arena);
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
Ok(())
}
@ -279,9 +267,7 @@ impl HeadlineNode {
self.node.insert_after(headline.node, &mut org.arena);
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
Ok(())
}
@ -343,9 +329,7 @@ impl DocumentNode {
),
}
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
}
pub fn append(self, headline: HeadlineNode, org: &mut Org<'_>) -> Result<(), OrgizeError> {
@ -359,9 +343,7 @@ impl DocumentNode {
org.root.append(headline.node, &mut org.arena);
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
Ok(())
}
@ -381,9 +363,7 @@ impl DocumentNode {
org.root.prepend(headline.node, &mut org.arena);
}
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
Ok(())
}

View file

@ -45,9 +45,7 @@ impl<'a> Org<'a> {
config,
);
if cfg!(debug_assertions) {
org.validate().unwrap();
}
org.debug_validate();
org
}