3个版本 (破坏性)
0.3.0 | 2019年11月19日 |
---|---|
0.2.0 | 2019年11月17日 |
0.1.1 | 2019年11月11日 |
#2239 in 编码
38KB
1.5K SLoC
CBORG
Rust的CBOR解析器。
不完整,仅供个人使用。您可能需要 serde_cbor
用法
decode_to()
将解码CBOR并将其反序列化为指定对象
// Unmarshal Map
use std::collections::HashMap;
let bytes = &[0b1010_0010, 0b0011_1000, 0b0001_1000, 0b0110_0011, 0x61, 0x62, 0x63,
0b0000_0111, 0b0110_0011, 0x44, 0x45, 0x46];
let map: HashMap<i8, String> = cborg::decode_to(bytes).unwrap().unwrap();
assert_eq!("abc", map[&-25]);
assert_eq!("DEF", map[&7]);
// Unmarshal Array
let bytes = &[0b1000_0011, 11, 22, 0b0001_1000, 33];
let array: Vec<u32> = cborg::decode_to(bytes).unwrap().unwrap();
assert_eq!(11, array[0]);
assert_eq!(22, array[1]);
assert_eq!(33, array[2]);
encode()
将任何实现了 From
用于 cborg::Value
的对象进行编码
use std::collections::HashMap;
let map: HashMap<u32, &str> = [
(33, "thirty-three"),
(44, "fourty-four"),
(55, "fifty-five")
].iter().cloned().collect();
let cbor_bytes: Vec<u8> = cborg::encode(map);