1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
//! # Rhythm Game Formats
//!
//! [![github]](https://github.com/zkldi/rg_formats) [![crates-io]](https://crates.io/crates/rg_formats) [![docs-rs]](https://docs.rs/rg_formats)
//!
//! [github]: https://img.shields.io/badge/github-8da0cb?style=for-the-badge&labelColor=555555&logo=github
//! [crates-io]: https://img.shields.io/badge/crates.io-fc8d62?style=for-the-badge&labelColor=555555&logo=rust
//! [docs-rs]: https://img.shields.io/badge/docs.rs-66c2a5?style=for-the-badge&labelColor=555555&logo=docs.rs
//!
//! Various processors for various rhythm game formats.
//!
//! These are the currently available modules:
//!
//! - [`sm`] for parsing `.sm` files.
//! - [`sm_msd`] for parsing `.msd` files, or generally working with the raw underpinnings of the `.sm` and `.ssc` formats.
//!
//! Clicking on either of these modules will tell you more.
//!
//! # Usage
//!
//! ```rust
//! let sm_charts = rg_formats::sm::from_path("my_sm_file.sm")
//! // an outer io::Error<> indicates whether the file could be read
//! .expect("failed to open file")
//! // the inner error indicates whether the contents of the file were valid SM.
//! .expect("sm file was invalid");
//! ```