3 个不稳定版本
0.3.1 | 2019 年 12 月 2 日 |
---|---|
0.3.0 | 2019 年 12 月 2 日 |
0.2.4 | 2018 年 8 月 12 日 |
#7 in #leb128
每月下载量 26
用于 4 个包 (3 直接)
22KB
435 行
leb128
读取和写入 DWARF 的 "小端基 128" (LEB128) 可变长度整数编码。
实现是 DWARF 4 标准附录 C 中伪代码的直接翻译。
安装
或者
$ cargo add leb128
将以下内容添加到您的 Cargo.toml
[dependencies]
leb128 = "0.2.1"
示例
use leb128;
let mut buf = [0; 1024];
// Write to anything that implements `std::io::Write`.
{
let mut writable = &mut buf[..];
leb128::write::signed(&mut writable, -12345).expect("Should write number");
}
// Read from anything that implements `std::io::Read`.
let mut readable = &buf[..];
let val = leb128::read::signed(&mut readable).expect("Should read number");
assert_eq!(val, -12345);
文档
LEB128 的读取-评估-打印-循环
此 crate 包含一个 leb128-repl
程序,您可以在 cargo install leb128
或在此仓库的克隆中运行 cargo run
后使用。
$ leb128-repl
LEB128 Read-Eval-Print-Loop!
Converts numbers to signed and unsigned LEB128 and displays the results in
base-10, hex, and binary.
> 42
# unsigned LEB128
[42]
[2a]
[00101010]
# signed LEB128
[42]
[2a]
[00101010]
> -42
# unsigned LEB128
error
# signed LEB128
[86]
[56]
[01010110]
> 9001
# unsigned LEB128
[169, 70]
[a9, 46]
[10101001, 01000110]
# signed LEB128
[169, 198, 0]
[a9, c6, 0]
[10101001, 11000110, 00000000]
> -9001
# unsigned LEB128
error
# signed LEB128
[215, 185, 127]
[d7, b9, 7f]
[11010111, 10111001, 01111111]
>
许可
许可协议为以下之一
- Apache 许可证 2.0 版(
LICENSE-APACHE
或 http://www.apache.org/licenses/LICENSE-2.0) - MIT 许可证(
LICENSE-MIT
或 http://opensource.org/licenses/MIT)
任选其一。
贡献
除非您明确声明,否则您故意提交的任何旨在包含在作品中的贡献,根据 Apache-2.0 许可证定义,将按照上述方式双许可,无需任何附加条款或条件。
依赖项
~215KB