3个版本 (破坏性)

0.3.0 2019年11月19日
0.2.0 2019年11月17日
0.1.1 2019年11月11日

#2239 in 编码

MIT 许可证

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);

pipeline status

无运行时依赖