# bitsy-parser ![Rust](https://github.com/synth-ruiner/bitsy-parser/workflows/Rust/badge.svg) ![](https://img.shields.io/badge/license-MIT-blueviolet.svg) [![Crates.io](https://img.shields.io/crates/v/bitsy-parser.svg)](https://crates.io/crates/bitsy-parser) a library for parsing Bitsy game data. the version number follows Bitsy itself, so version 0.70.* targets Bitsy 7.0. ## how to use a simple example program: ```rust extern crate bitsy_parser; use bitsy_parser::game::Game; use std::{env, fs}; fn main() { let input_file = env::args() .nth(1) .expect("No input path specified. Usage: `bitsy-validate filepath`"); Game::from(fs::read_to_string(input_file).unwrap()).unwrap(); println!("OK!"); } ``` some more practical uses would be things like: * remove duplicate tiles * merge two Bitsy games together * programmatically create Bitsy games * a Bitsy game editor ## todo * implement Result return types on ::from functions so that we can handle errors * replace Image with Vec or something. seems like a pointless abstraction * replace game avatar with helper functions to get and set the sprite with an ID of A * implement PartialEq for tiles etc. for the sake of checking for duplicate tiles? * dedupe functions for tiles, sprites, etc. ### tidy up * refactor the more shonky bits to idiomatic rust