5 个版本
0.2.0 | 2023 年 2 月 8 日 |
---|---|
0.1.3 | 2022 年 9 月 8 日 |
0.1.2 | 2022 年 7 月 5 日 |
0.1.1 | 2022 年 7 月 5 日 |
0.1.0 | 2022 年 7 月 5 日 |
#1639 在 解析器实现
370KB
371 行
nom_bencode
使用 nom 编写的 bencode 解析器。
use nom_bencode::Value;
let data = nom_bencode::parse(b"d3:cow3:moo4:spam4:eggse").unwrap();
let v = data.first().unwrap();
if let Value::Dictionary(dict) = v {
let v = dict.get("cow".as_bytes()).unwrap();
if let Value::Bytes(data) = v {
assert_eq!(data, b"moo");
}
let v = dict.get("spam".as_bytes()).unwrap();
if let Value::Bytes(data) = v {
assert_eq!(data, b"eggs");
}
}
许可:MIT OR Apache-2.0
lib.rs
:
使用 nom 编写的 bencode 解析器。
use nom_bencode::Value;
let data = nom_bencode::parse(b"d3:cow3:moo4:spam4:eggse").unwrap();
let v = data.first().unwrap();
if let Value::Dictionary(dict) = v {
let v = dict.get("cow".as_bytes()).unwrap();
if let Value::Bytes(data) = v {
assert_eq!(data, b"moo");
}
let v = dict.get("spam".as_bytes()).unwrap();
if let Value::Bytes(data) = v {
assert_eq!(data, b"eggs");
}
}
依赖
~1.1–1.8MB
~37K SLoC