2 个稳定版本

1.1.0 2023年6月3日
1.0.0 2018年5月21日

#2020解析器实现

每月下载量 21 次
2 个crate中使用 (通过 cue)

GPL-2.0-or-later

5KB
84

cue

本crate为libcue库提供Rust绑定,该库支持解析和解释CUE表格。CUE表格格式常用于CD的创建以及存储抓取的CD副本。

本仓库包含两个crate:包含原始C API的原始绑定的cue-sys,以及提供更高层次、更Rustic接口的cue

示例

以下是一个使用示例CUE表格使用此crate的简单示例

use cue::cd::{CD, DiscMode};

let cue_sheet = "FILE \"example.img\" BINARY
  TRACK 01 MODE1/2352
    INDEX 01 00:00:00
  TRACK 02 AUDIO
    PREGAP 00:02:00
    INDEX 01 58:41:36
  TRACK 03 AUDIO
    INDEX 00 61:06:08
    INDEX 01 61:08:08
";

let cd = CD::parse(cue_sheet.to_string()).unwrap();

println!("Number of tracks: {}", cd.get_track_count());
let mode = match cd.get_mode() {
    DiscMode::CD_DA => "CD-DA",
    DiscMode::CD_ROM => "CD-ROM",
    DiscMode::CD_ROM_XA => "CD-ROM XA",
};
println!("Mode: {}", mode);
println!("");

for (index, track) in cd.tracks().iter().enumerate() {
    println!("Track {}", index + 1);
    println!("Filename: {}", track.get_filename());
    println!("Start: {}", track.get_start());
    println!("Length: {}", track.get_length().unwrap_or(-1));
    println!("Pregap: {}", track.get_zero_pre().unwrap_or(0));
    println!("Postgap: {}", track.get_zero_post().unwrap_or(0));
    println!("");
}

贡献

如果您在使用此crate时遇到问题,请随时提交问题请求帮助。我将尽我所能帮助您!

拉取请求非常欢迎。如果您是开源或Rust的新手,只需告诉我,我将很高兴帮助您完成贡献过程!

许可证

这两个crate都采用GPL 2.0许可证,与libcue相同。

依赖项

~43KB