diff --git a/README.md b/README.md index 956a7b0647657fc809b6d925e824ad5686bf0ec7..c7c339f7826b47c8f04bd26fa4fb230e5f725a7e 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 0fa4408124aba8c7615f8a4038bb18b8489dba9f..591f7c8f9739e05543ea16b887f3cabc77ce61dd 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 239a5a6b6183cc6ba30ba3d40be30c20c851b3b1..a2f39a661c0f5d4b452920330c8098a1e7453ddd 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())),