This could probably use a full rewrite, as it was a Rust learning project. When? Who knows. Things to implement: - [ ] Better errors - [ ] Docs: - [ ] Add more standalone examples - [ ] Add more documentation + doc-examples - [ ] [Serde](https://serde.rs/) support - [x] Fix API to be more idiomatic Rust - [x] ~~Split up parsing better; consider using nom/combine~~ probably overkill and too much work for no sensible gain, if any. - [ ] Add Across support (see [domi's python lib](https://github.com/domi-id/across)) - [x] Add state.dat support - [x] Read/write best times - [x] Read/write players/settings - [x] Add LGR support ([Details](http://wiki.elmaonline.net/LGR/Technical)) - [ ] Switch to [geo](https://github.com/georust/geo) crate (potentially easier geometry checks?) - [ ] Topology checks: - [ ] Head inside ground - [ ] Apple fully inside ground - [ ] Crossing polygon edges - [x] Missing start or exit - [x] Level dimensions - [x] Object, polygon, picture and vertex limits - [x] std::fs::read all the things
This could probably use a full rewrite, as it was a Rust learning project. When? Who knows.
Things to implement:
Split up parsing better; consider using nom/combineprobably overkill and too much work for no sensible gain, if any.