diff --git a/src/export/html.rs b/src/export/html.rs index 966196a..5979745 100644 --- a/src/export/html.rs +++ b/src/export/html.rs @@ -1,5 +1,5 @@ use std::fmt; -use std::io::{Error, Write}; +use std::io::{Error, Result as IOResult, Write}; use jetscii::{bytes, BytesConst}; @@ -50,7 +50,16 @@ impl> fmt::Display for HtmlEscape { } pub trait HtmlHandler>: Default { - fn start(&mut self, mut w: W, element: &Element) -> Result<(), E> { + fn start(&mut self, w: W, element: &Element) -> Result<(), E>; + fn end(&mut self, w: W, element: &Element) -> Result<(), E>; +} + +/// Default Html Handler +#[derive(Default)] +pub struct DefaultHtmlHandler; + +impl HtmlHandler for DefaultHtmlHandler { + fn start(&mut self, mut w: W, element: &Element) -> IOResult<()> { match element { // container elements Element::SpecialBlock(_) => (), @@ -195,7 +204,7 @@ pub trait HtmlHandler>: Default { Ok(()) } - fn end(&mut self, mut w: W, element: &Element) -> Result<(), E> { + fn end(&mut self, mut w: W, element: &Element) -> IOResult<()> { match element { // container elements Element::SpecialBlock(_) => (), @@ -241,12 +250,6 @@ pub trait HtmlHandler>: Default { } } -/// Default Html Handler -#[derive(Default)] -pub struct DefaultHtmlHandler; - -impl HtmlHandler for DefaultHtmlHandler {} - #[cfg(feature = "syntect")] mod syntect_handler { use super::*; diff --git a/src/export/org.rs b/src/export/org.rs index ba8b360..7e860d8 100644 --- a/src/export/org.rs +++ b/src/export/org.rs @@ -1,10 +1,18 @@ -use std::io::{Error, Write}; +use std::io::{Error, Result as IOResult, Write}; use crate::elements::{Clock, Element, Table, Timestamp}; use crate::export::write_datetime; pub trait OrgHandler>: Default { - fn start(&mut self, mut w: W, element: &Element) -> Result<(), E> { + fn start(&mut self, w: W, element: &Element) -> Result<(), E>; + fn end(&mut self, w: W, element: &Element) -> Result<(), E>; +} + +#[derive(Default)] +pub struct DefaultOrgHandler; + +impl OrgHandler for DefaultOrgHandler { + fn start(&mut self, mut w: W, element: &Element) -> IOResult<()> { match element { // container elements Element::SpecialBlock(block) => { @@ -189,7 +197,7 @@ pub trait OrgHandler>: Default { Ok(()) } - fn end(&mut self, mut w: W, element: &Element) -> Result<(), E> { + fn end(&mut self, mut w: W, element: &Element) -> IOResult<()> { match element { // container elements Element::SpecialBlock(block) => { @@ -311,8 +319,3 @@ fn write_timestamp(mut w: W, timestamp: &Timestamp) -> Result<(), Erro } Ok(()) } - -#[derive(Default)] -pub struct DefaultOrgHandler; - -impl OrgHandler for DefaultOrgHandler {}