5个版本 (稳定)
2.0.0 | 2023年7月14日 |
---|---|
1.1.0 | 2023年6月3日 |
1.0.1 | 2021年9月18日 |
1.0.0 | 2018年5月21日 |
0.1.0 | 2016年7月1日 |
#764 in 解析器实现
每月39次下载
在 dango-core 中使用
24KB
346 行
cue
此crate为libcue库提供Rust绑定,该库支持解析和解释CUE表。CUE表格式通常用于制作CD和存储抓取的CD副本。
此仓库包含两个crate:cue-sys
,其中包含原始C API的原始绑定,以及cue
,它提供了一个更高级、更符合Rust风格的接口。
示例
以下是一个如何使用此crate的简单示例,使用一个示例CUE表
use cue::cd::{CD, DiscMode};
use cue::track::{TrackMode, TrackSubMode};
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());
println!("Pregap: {}", track.get_zero_pre());
println!("Postgap: {}", track.get_zero_post());
println!("");
}
贡献
如果您在使用此crate时遇到问题,请随时提交一个请求帮助的问题。我会尽我所能帮助您!
拉取请求非常受欢迎。如果您是开源或Rust的新手,请告诉我,我将很高兴帮助您完成贡献的过程!
许可协议
这两个crate都遵循GPL 2.0许可,这与libcue使用的许可相同。
依赖关系
~43KB