#osu #beatmap #error #parsed #equals #assert #instance

osu-file-parser

用于解析osu! beatmap文件的crate

3个稳定版本

1.1.0 2022年8月29日
1.0.1 2022年8月29日

#1214 in Rust模式

每月 29次下载

MIT/Apache

1.5MB
9K SLoC

osu-file-parser


crates.io Documentation

用于解析osu! beatmap文件的crate。

如何使用

use osu_file_parser::*;

let osu_file_str = include_str!("./tests/osu_files/files/acid_rain.osu");
// parse the .osu file
let mut osu_file = osu_file_str.parse::<OsuFile>().unwrap();

let osb_str = include_str!("./tests/osu_files/files/acid_rain.osb");
// .osb file can also be parsed and appended to the `OsuFile` instance
osu_file.append_osb(osb_str).unwrap();

// you can use `assert_eq_osu_str` to assert that the parsed .osu file is equal to the original .osu file
assert_eq_osu_str(&osu_file.to_string(), osu_file_str);
assert_eq_osu_str(&osu_file.osb_to_string().unwrap(), osb_str);

一般信息

替代特性

  • 该crate中的大多数类型使用VersionedToStringVersionedFromStrVersionedDefault特性作为DisplayFromStrDefault特性的替代。
  • 这些特性通过一个额外的version参数来选择使用哪个版本的输出。
  • 如果类型在某些版本中不存在,则输出将是None

错误

  • 以字符串行作为输入的结构的错误可以返回包含错误发生位置和错误信息的错误。
  • 在这些情况下,错误类型被包装在Error中。
  • Error有方法可以告诉你输入字符串中错误发生的位置以及错误是什么。

依赖项

~2.1–3MB
~57K SLoC