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