1个不稳定版本
0.1.0 | 2019年7月7日 |
---|
#400 在 压缩
330 每月下载量
在 4 crates 中使用
20KB
252 代码行
nano: leb128
小端基128可变长度编码压缩。用法
有符号LEB128压缩/解压缩
use nano_leb128::SLEB128;
fn rand_i64() -> i64 {
// ...
}
let mut buf = [0; 10];
let value = rand_i64();
// Compress the value into the buffer.
let len = SLEB128::from(value).write_into(&mut buf).unwrap();
// Decompress the value from the buffer.
let (decompressed, _len) = SLEB128::read_from(&buf[..len]).unwrap();
assert_eq!(i64::from(decompressed), value);
无符号LEB128压缩/解压缩
use nano_leb128::ULEB128;
fn rand_u64() -> u64 {
// ...
}
let mut buf = [0; 10];
let value = rand_u64();
// Compress the value into the buffer.
let len = ULEB128::from(value).write_into(&mut buf).unwrap();
// Decompress the value from the buffer.
let (decompressed, _len) = ULEB128::read_from(&buf[..len]).unwrap();
assert_eq!(u64::from(decompressed), value);
功能
-
std
(默认启用)这启用了仅与Rust标准库一起可用的扩展。
-
std_io_ext
为
std::io
中的特质的实现者添加读取/写入LEB128压缩值的方法。此功能需要std功能,如果尚未启用,则将自动启用它。 -
byteio_ext
为
byteio
中的特质的实现者添加读取/写入LEB128压缩值的方法。此功能不需要std功能。
许可证
本项目可选择以下任一许可证进行双重授权:
- Apache许可证,版本2.0,(LICENSE-APACHE 或 http://www.apache.org/licenses/LICENSE-2.0)
- MIT许可证 (LICENSE-MIT 或 http://opensource.org/licenses/MIT)
任选其一。
依赖关系
~48KB