2 个稳定版本
1.1.0 | 2023年6月3日 |
---|---|
1.0.0 | 2018年5月21日 |
#2020 在 解析器实现
每月下载量 21 次
在 2 个crate中使用 (通过 cue)
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