beat_saber_map 0.4.0

Read and write Beat Saber maps with Rust.
Documentation
# `beat_saber_map`

[![Crates.io Version](https://img.shields.io/crates/v/beat_saber_map)](https://crates.io/crates/beat_saber_map)
[![docs.rs](https://img.shields.io/docsrs/beat_saber_map)](https://docs.rs/beat_saber_map)
[![Rust](https://github.com/valentinegb/beat-saber-map-rs/actions/workflows/rust.yml/badge.svg)](https://github.com/valentinegb/beat-saber-map-rs/actions/workflows/rust.yml)

Read and write Beat Saber maps with Rust.

```rs
use beat_saber_map::BeatSaberMap;

let map = BeatSaberMap::from_dir("sample").unwrap();

assert_eq!(map.info.version, "4.0.0");
assert_eq!(map.info.song.title, "Magic");
assert_eq!(map.info.environment_names.first().unwrap(), "WeaveEnvironment");
```

Documentation can be found on [docs.rs](https://docs.rs/beat_saber_map).

## Roadmap

- [ ] Create structures for map files
  - [x] [`Info`](https://docs.rs/beat_saber_map/latest/beat_saber_map/info/struct.Info.html)
  - [x] [`Audio`](https://docs.rs/beat_saber_map/latest/beat_saber_map/audio/struct.Audio.html)
  - [x] [`Beatmap`](https://docs.rs/beat_saber_map/latest/beat_saber_map/beatmap/struct.Beatmap.html)
  - [ ] `Lightshow`
- [ ] Create utility methods for map file structures and [`BeatSaberMap`]https://docs.rs/beat_saber_map/latest/beat_saber_map/struct.BeatSaberMap.html
  - [x] [`BeatSaberMap::from_dir()`](https://docs.rs/beat_saber_map/latest/beat_saber_map/struct.BeatSaberMap.html#method.from_dir)
  - [x] [`Info::from_file()`](https://docs.rs/beat_saber_map/latest/beat_saber_map/info/struct.Info.html#method.from_file)
  - [x] [`Audio::from_file()`](https://docs.rs/beat_saber_map/latest/beat_saber_map/audio/struct.Audio.html#method.from_file)
  - [x] [`Beatmap::from_file()`](https://docs.rs/beat_saber_map/latest/beat_saber_map/beatmap/struct.Beatmap.html#method.from_file)
  - [ ] More...