From e02f5a618823f93116218cb11b1be8c5a2c212ad Mon Sep 17 00:00:00 2001 From: Matthew Hall <matthew@quickbeam.me.uk> Date: Sat, 11 Oct 2014 15:46:31 +0100 Subject: [PATCH] Move creating EventReader to the library Before this commit parse took an EventReader. Change so that it takes a Buffer --- README.md | 5 +---- examples/main.rs | 7 +------ src/lib.rs | 5 +++-- 3 files changed, 5 insertions(+), 12 deletions(-) diff --git a/README.md b/README.md index 956a7b0..c7c339f 100644 --- a/README.md +++ b/README.md @@ -9,20 +9,17 @@ Read maps from the [Tiled Map Editor](http://www.mapeditor.org/) into rust for u ```rust extern crate serialize; -extern crate xml; extern crate tiled; use std::io::File; use std::io::BufferedReader; -use xml::reader::EventReader; use tiled::parse; fn main() { let file = File::open(&Path::new("assets/tiled_base64_zlib.tmx")).unwrap(); println!("Opened file"); let reader = BufferedReader::new(file); - let mut parser = EventReader::new(reader); - let map = parse(&mut parser).unwrap(); + let map = parse(reader).unwrap(); println!("{}", map); println!("{}", map.get_tileset_by_gid(22)); } diff --git a/examples/main.rs b/examples/main.rs index 0fa4408..591f7c8 100644 --- a/examples/main.rs +++ b/examples/main.rs @@ -1,20 +1,15 @@ -#![feature(globs)] - extern crate serialize; -extern crate xml; extern crate tiled; use std::io::File; use std::io::BufferedReader; -use xml::reader::EventReader; use tiled::parse; fn main() { let file = File::open(&Path::new("assets/tiled_base64_zlib.tmx")).unwrap(); println!("Opened file"); let reader = BufferedReader::new(file); - let mut parser = EventReader::new(reader); - let map = parse(&mut parser).unwrap(); + let map = parse(reader).unwrap(); println!("{}", map); println!("{}", map.get_tileset_by_gid(22)); } diff --git a/src/lib.rs b/src/lib.rs index 239a5a6..a2f39a6 100644 --- a/src/lib.rs +++ b/src/lib.rs @@ -449,12 +449,13 @@ fn parse_data<B: Buffer>(parser: &mut EventReader<B>, attrs: Vec<Attribute>, wid /// Parse a buffer hopefully containing the contents of a Tiled file and try to /// parse it. -pub fn parse<B: Buffer>(parser: &mut EventReader<B>) -> Result<Map, TiledError> { +pub fn parse<B: Buffer>(reader: B) -> Result<Map, TiledError> { + let mut parser = EventReader::new(reader); loop { match parser.next() { StartElement {name, attributes, ..} => { if name.local_name[] == "map" { - return Map::new(parser, attributes); + return Map::new(&mut parser, attributes); } } EndDocument => return Err(PrematureEnd("Document ended before map was parsed".to_string())), -- GitLab