Skip to content
Snippets Groups Projects
Commit e02f5a61 authored by Matthew Hall's avatar Matthew Hall
Browse files

Move creating EventReader to the library

Before this commit parse took an EventReader. Change so that it takes a
Buffer
parent 95e1fe19
No related branches found
No related tags found
No related merge requests found
...@@ -9,20 +9,17 @@ Read maps from the [Tiled Map Editor](http://www.mapeditor.org/) into rust for u ...@@ -9,20 +9,17 @@ Read maps from the [Tiled Map Editor](http://www.mapeditor.org/) into rust for u
```rust ```rust
extern crate serialize; extern crate serialize;
extern crate xml;
extern crate tiled; extern crate tiled;
use std::io::File; use std::io::File;
use std::io::BufferedReader; use std::io::BufferedReader;
use xml::reader::EventReader;
use tiled::parse; use tiled::parse;
fn main() { fn main() {
let file = File::open(&Path::new("assets/tiled_base64_zlib.tmx")).unwrap(); let file = File::open(&Path::new("assets/tiled_base64_zlib.tmx")).unwrap();
println!("Opened file"); println!("Opened file");
let reader = BufferedReader::new(file); let reader = BufferedReader::new(file);
let mut parser = EventReader::new(reader); let map = parse(reader).unwrap();
let map = parse(&mut parser).unwrap();
println!("{}", map); println!("{}", map);
println!("{}", map.get_tileset_by_gid(22)); println!("{}", map.get_tileset_by_gid(22));
} }
......
#![feature(globs)]
extern crate serialize; extern crate serialize;
extern crate xml;
extern crate tiled; extern crate tiled;
use std::io::File; use std::io::File;
use std::io::BufferedReader; use std::io::BufferedReader;
use xml::reader::EventReader;
use tiled::parse; use tiled::parse;
fn main() { fn main() {
let file = File::open(&Path::new("assets/tiled_base64_zlib.tmx")).unwrap(); let file = File::open(&Path::new("assets/tiled_base64_zlib.tmx")).unwrap();
println!("Opened file"); println!("Opened file");
let reader = BufferedReader::new(file); let reader = BufferedReader::new(file);
let mut parser = EventReader::new(reader); let map = parse(reader).unwrap();
let map = parse(&mut parser).unwrap();
println!("{}", map); println!("{}", map);
println!("{}", map.get_tileset_by_gid(22)); println!("{}", map.get_tileset_by_gid(22));
} }
...@@ -449,12 +449,13 @@ fn parse_data<B: Buffer>(parser: &mut EventReader<B>, attrs: Vec<Attribute>, wid ...@@ -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 a buffer hopefully containing the contents of a Tiled file and try to
/// parse it. /// 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 { loop {
match parser.next() { match parser.next() {
StartElement {name, attributes, ..} => { StartElement {name, attributes, ..} => {
if name.local_name[] == "map" { 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())), EndDocument => return Err(PrematureEnd("Document ended before map was parsed".to_string())),
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment