Anders429 / simfile

Apache License 2.0
0 stars 0 forks source link

simfile

GitHub Workflow Status codecov.io crates.io docs.rs MSRV License

Reading, writing, manipulating, and converting simfiles.

A simfile is a file used in a rhythm game simulator. This library provides tools for reading them, creating them, modifying them, and transcoding between them. The intention is to have a one-stop shop for working with all formats. A number of common simfile types are supported, including:

Usage

This library provides a Song type, which stores the data for a single simfile song. A Song can be read directly from an existing simfile of any supported type.

Example

Reading a Song from a .msd simfile is done as follows:

use simfile::Song;

let song = Song::read_msd("simfile.msd").expect("error while reading `.msd` file");

Similarly, writing to a .msd simfile is done from an existing Song as follows:

song.write_msd("simfile.msd").expect("error while writing `.msd` file");

Note that both Song::read_msd() and Song::write_msd() return Result types that must be handled appropriately.

Minimum Supported Rust Version

This crate is guaranteed to compile on stable rustc 1.58.0 and up.

License

This project is licensed under either of

at your option.

Contribution

Unless you explicitly state otherwise, any contribution intentionally submitted for inclusion in the work by you, as defined in the Apache-2.0 license, shall be dual licensed as above, without any additional terms or conditions.