1 个不稳定版本
0.1.0 | 2020年6月11日 |
---|
#33 in #varint
8KB
131 行
varintbuf
该包提供 varint 编码/解码功能,基于 varinteger 包,但已针对 bytes 进行了适配。
使用方法
解码
extern crate bytes;
// decode a `u64` integer from a buffer
let mut buf = &[100u8, 232, 7][..];
let value = varintbuf::decode(&mut buf);
assert_eq!(value, 100);
let mut buf = Bytes::from(buf);
let value = varintbuf::decode(&mut buf);
assert_eq!(value, 1000)
编码
extern crate bytes;
// encode a `u64` integer into a buffer
let mut buf = Vec::new();
let mut bytes_encoded = encode(100, &mut buf);
assert_eq!(buf[0], 100);
let mut buf = BytesMut::from(&*buf);
bytes_encoded += encode(1000, &mut buf);
assert_eq!(buf[1], 232);
assert_eq!(buf[2], 7);
assert_eq!(bytes_encoded, 3);
assert_eq!(bytes_encoded, buf.len());
许可
根据以下任一许可协议授权
- Apache License, Version 2.0, (LICENSE-APACHE 或 https://www.apache.org/licenses/LICENSE-2.0)
- MIT license (LICENSE-MIT 或 https://opensource.org/licenses/MIT)
依赖
~215KB