diff --git a/examples/custom_handler.rs b/examples/custom_handler.rs index f0541c5..71476c7 100644 --- a/examples/custom_handler.rs +++ b/examples/custom_handler.rs @@ -31,17 +31,17 @@ fn main() -> Result<()> { let mut contents = String::new(); file.read_to_string(&mut contents)?; - let cursor = Cursor::new(Vec::new()); + let mut cursor = Cursor::new(Vec::new()); //let mut render = DefaultHtmlRender::new(cursor, &contents); // comment the following line and uncomment the line above to use the default handler - let mut render = HtmlRender::new(CustomHtmlHandler, cursor, &contents); + let mut render = HtmlRender::new(CustomHtmlHandler, &mut cursor, &contents); render.render()?; println!( "{}", - String::from_utf8(render.into_writer().into_inner()).expect("invalid utf-8") + String::from_utf8(cursor.into_inner()).expect("invalid utf-8") ); } diff --git a/src/export/mod.rs b/src/export/mod.rs index 7927b43..97f26dc 100644 --- a/src/export/mod.rs +++ b/src/export/mod.rs @@ -15,15 +15,10 @@ macro_rules! create_render { impl<'a, W: Write> $default_render<'a, W> { #[inline] - pub fn new(writer: W, text: &'a str) -> Self { + pub fn new(writer: &'a mut W, text: &'a str) -> Self { $default_render($render::new($default_handler, writer, text)) } - #[inline] - pub fn into_writer(self) -> W { - self.0.writer - } - #[inline] pub fn render(&mut self) -> Result<()> { self.0.render() @@ -33,11 +28,11 @@ macro_rules! create_render { pub struct $render<'a, W: Write, H: $handler> { pub parser: Parser<'a>, handler: H, - writer: W, + writer: &'a mut W, } impl<'a, W: Write, H: $handler> $render<'a, W, H> { - pub fn new(handler: H, writer: W, text: &'a str) -> Self { + pub fn new(handler: H, writer: &'a mut W, text: &'a str) -> Self { $render { parser: Parser::new(text), handler, @@ -45,10 +40,6 @@ macro_rules! create_render { } } - pub fn into_writer(self) -> W { - self.writer - } - pub fn render(&mut self) -> Result<()> { use crate::parser::Event::*; diff --git a/src/lib.rs b/src/lib.rs index 829db65..79aa396 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -36,14 +36,14 @@ //! * Title 4 //! =Section 4="; //! -//! let cursor = Cursor::new(Vec::new()); -//! let mut render = DefaultHtmlRender::new(cursor, &contents); +//! let mut cursor = Cursor::new(Vec::new()); +//! let mut render = DefaultHtmlRender::new(&mut cursor, &contents); //! //! render //! .render() //! .expect("something went wrong rendering the file"); //! -//! let result = String::from_utf8(render.into_writer().into_inner()).expect("invalid utf-8"); +//! let result = String::from_utf8(cursor.into_inner()).expect("invalid utf-8"); //! ``` //! //! or `impl HtmlHandler` to create your own render. The following example @@ -79,15 +79,15 @@ //! * Title 4 //! =Section 4="; //! -//! let cursor = Cursor::new(Vec::new()); +//! let mut cursor = Cursor::new(Vec::new()); //! -//! let mut render = HtmlRender::new(CustomHtmlHandler, cursor, &contents); +//! let mut render = HtmlRender::new(CustomHtmlHandler, &mut cursor, &contents); //! //! render //! .render() //! .expect("something went wrong rendering the file"); //! -//! let result = String::from_utf8(render.into_writer().into_inner()).expect("invalid utf-8"); +//! let result = String::from_utf8(cursor.into_inner()).expect("invalid utf-8"); //! ``` #[macro_use]