#dwarf #read-write #variables #length

bin+lib leb128

读取和写入 DWARF 的 "Little Endian Base 128" (LEB128) 可变长度整数编码

7 个版本

0.2.5 2021年10月4日
0.2.4 2019年5月20日
0.2.3 2018年4月19日
0.2.2 2017年10月28日
0.1.0 2016年6月13日

#59编码

Download history 197791/week @ 2024-03-14 200806/week @ 2024-03-21 189704/week @ 2024-03-28 200708/week @ 2024-04-04 213456/week @ 2024-04-11 214215/week @ 2024-04-18 199266/week @ 2024-04-25 204756/week @ 2024-05-02 207031/week @ 2024-05-09 215962/week @ 2024-05-16 211212/week @ 2024-05-23 229629/week @ 2024-05-30 223239/week @ 2024-06-06 243309/week @ 2024-06-13 238806/week @ 2024-06-20 194073/week @ 2024-06-27

941,495 每月下载量
用于 1,303 个软件包 (95 直接)

Apache-2.0/MIT

26KB
586

leb128

Build Status Coverage Status

读取和写入 DWARF 的 "Little Endian Base 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 的读取-评估-打印-循环

该软件包包含一个 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 许可证定义的任何有意提交以包含在作品中的贡献,均应按上述方式双许可,不附加任何额外条款或条件。

无运行时依赖