feat(examples): add iter example

This commit is contained in:
PoiScript 2019-06-27 14:03:42 +08:00
parent d49cd135d8
commit c86fef91a0
2 changed files with 22 additions and 3 deletions

View file

@ -29,9 +29,9 @@ impl From<FromUtf8Error> for MyError {
} }
} }
struct CustomHtmlHandler; struct MyHtmlHandler;
impl HtmlHandler<MyError> for CustomHtmlHandler { impl HtmlHandler<MyError> for MyHtmlHandler {
fn start<W: Write>(&mut self, mut w: W, container: Container<'_>) -> Result<(), MyError> { fn start<W: Write>(&mut self, mut w: W, container: Container<'_>) -> Result<(), MyError> {
let mut default_handler = DefaultHtmlHandler; let mut default_handler = DefaultHtmlHandler;
match container { match container {
@ -62,7 +62,7 @@ fn main() -> Result<(), MyError> {
let contents = String::from_utf8(fs::read(&args[1])?)?; let contents = String::from_utf8(fs::read(&args[1])?)?;
let mut writer = Vec::new(); let mut writer = Vec::new();
Org::parse(&contents).html(&mut writer, CustomHtmlHandler)?; Org::parse(&contents).html(&mut writer, MyHtmlHandler)?;
println!("{}", String::from_utf8(writer)?); println!("{}", String::from_utf8(writer)?);
} }

19
examples/iter.rs Normal file
View file

@ -0,0 +1,19 @@
use orgize::Org;
use std::env::args;
use std::fs;
use std::io::Result;
fn main() -> Result<()> {
let args: Vec<_> = args().collect();
if args.len() < 2 {
eprintln!("Usage: {} <org-file>", args[0]);
} else {
let contents = String::from_utf8(fs::read(&args[1])?).unwrap();
for event in Org::parse(&contents).iter() {
println!("{:?}", event);
}
}
Ok(())
}