# `beat_saber_map`
[](https://crates.io/crates/beat_saber_map)
[](https://docs.rs/beat_saber_map)
[](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...