12个版本 (6个重大更改)

0.7.0 2023年3月19日
0.6.3 2022年3月8日
0.6.2 2021年7月21日
0.6.0 2021年2月7日
0.1.0 2020年7月22日

#1590解析器实现

Download history • Rust 包仓库 10/week @ 2024-03-08 • Rust 包仓库 5/week @ 2024-03-15 • Rust 包仓库 17/week @ 2024-03-29 • Rust 包仓库 6/week @ 2024-04-05 • Rust 包仓库 2/week @ 2024-04-19 • Rust 包仓库

每月82次下载

MIT许可证

42KB
965

cuna

一个简单的Rust cue解析器,使用nom.
支持UTF-8和带有BOM的UTF-8 cue文件。
当前文档不完整,API也有些复杂,因此rcuelibcue.rs (尽管我无法编译这个)可能是一个更好的选择。

使用方法

crates.io 文档

cuna 0.6引入了一些不兼容的更改,请访问发布页面查看它们。同时请注意,该包仍然是0.x。

如果您发现任何令人困惑或不符合cue标准的内容,请提交问题。

use cuna::Cuna;
use cuna::error::Error;

fn main() -> Result<(), Error> {
    let file = "tests/EGOIST - Departures ~あなたにおくるアイの歌~.cue";
    let cue = Cuna::open(file)?;
    assert_eq!(cue.comments[0], "GENRE Pop");
    assert_eq!(cue.title(), &["Departures ~あなたにおくるアイの歌~".to_owned()]);
    assert_eq!(cue[0].name, "EGOIST - Departures ~あなたにおくるアイの歌~.flac");
    assert_eq!(cue[0][0].performer(), &["EGOIST".to_owned()]);
    Ok(())
}

性能

我认为这个crate并不太慢。

这是一个使用42行cue文件的基准测试(可能已过时)。
仅测试 Cuna::from_utf8_with_bom()(现在称为Cuna::from_str())与i5-7300HQ。

cuna                    time:   [21.899 us 21.962 us 22.033 us]
                        change: [-1.1745% -0.3960% +0.3489%] (p = 0.31 > 0.05)
                        No change in performance detected.
Found 3 outliers among 100 measurements (3.00%)
  1 (1.00%) high mild
  2 (2.00%) high severe

您可以通过运行cargo bench获取更准确的数据。

依赖关系

~1.2–1.8MB
~38K SLoC