4 个版本
使用旧的 Rust 2015
0.2.2 | 2019 年 8 月 7 日 |
---|---|
0.2.1 | 2019 年 8 月 2 日 |
0.2.0 | 2017 年 3 月 5 日 |
0.1.0 | 2017 年 3 月 5 日 |
#2222 在 解析器实现
48 每月下载量
在 4 crates 中使用
16KB
143 行
pls-rs
Rust crate 用于解析和写入 PLS 播放列表格式
文档
lib.rs
:
PLS 播放列表格式的解析器和写入器。
示例
读取 PLS
assert_eq!(pls::parse(&mut &b"[playlist]\n\
File1=Track 1.mp3\n\
Title1=Unknown Artist - Track 1\n\
\n\
File2=Track 2.mp3\n\
Length2=420\n\
\n\
File3=Track 3.mp3\n\
Length3=-1\n\
\n\
NumberOfEntries=3\n"[..]).unwrap(),
vec![PlaylistElement {
path: "Track 1.mp3".to_string(),
title: Some("Unknown Artist - Track 1".to_string()),
len: ElementLength::Unknown,
},
PlaylistElement {
path: "Track 2.mp3".to_string(),
title: None,
len: ElementLength::Seconds(420),
},
PlaylistElement {
path: "Track 3.mp3".to_string(),
title: None,
len: ElementLength::Unknown,
}]);
写入 PLS
let mut buf = Vec::new();
pls::write(&[PlaylistElement {
path: "Track 1.mp3".to_string(),
title: Some("Unknown Artist - Track 1".to_string()),
len: ElementLength::Unknown,
},
PlaylistElement {
path: "Track 2.mp3".to_string(),
title: None,
len: ElementLength::Seconds(420),
},
PlaylistElement {
path: "Track 3.mp3".to_string(),
title: None,
len: ElementLength::Unknown,
}],
&mut buf).unwrap();
assert_eq!(String::from_utf8(buf).unwrap(),
"[playlist]\n\
File1=Track 1.mp3\n\
Title1=Unknown Artist - Track 1\n\
\n\
File2=Track 2.mp3\n\
Length2=420\n\
\n\
File3=Track 3.mp3\n\
\n\
NumberOfEntries=3\n\
Version=2\n")
依赖关系
~87KB