summaryrefslogtreecommitdiffstats
path: root/third_party/rust/leb128/README.md
diff options
context:
space:
mode:
Diffstat (limited to 'third_party/rust/leb128/README.md')
-rw-r--r--third_party/rust/leb128/README.md113
1 files changed, 113 insertions, 0 deletions
diff --git a/third_party/rust/leb128/README.md b/third_party/rust/leb128/README.md
new file mode 100644
index 0000000000..97e05f9adf
--- /dev/null
+++ b/third_party/rust/leb128/README.md
@@ -0,0 +1,113 @@
+# `leb128`
+
+[![](https://img.shields.io/crates/v/leb128.svg) ![](https://img.shields.io/crates/d/leb128.png)](https://crates.io/crates/leb128) [![Build Status](https://travis-ci.org/gimli-rs/leb128.png?branch=master)](https://travis-ci.org/gimli-rs/leb128) [![Coverage Status](https://coveralls.io/repos/github/gimli-rs/leb128/badge.svg?branch=master)](https://coveralls.io/github/gimli-rs/leb128?branch=master)
+
+Read and write DWARF's "Little Endian Base 128" (LEB128) variable length integer
+encoding.
+
+The implementation is a direct translation of the pseudocode in the DWARF 4
+standard's appendix C.
+
+## Install
+
+Either
+
+ $ cargo add leb128
+
+or add this to your `Cargo.toml`:
+
+ [dependencies]
+ leb128 = "0.2.1"
+
+## Example
+
+```rust
+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);
+```
+
+## Documentation
+
+[Documentation](https://gimli-rs.github.io/leb128/leb128/index.html)
+
+## Read-Eval-Print-Loop for LEB128
+
+This crate comes with a `leb128-repl` program that you can use after `cargo
+install leb128` or by running `cargo run` in clone of this repository.
+
+```
+$ 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]
+
+>
+```
+
+## License
+
+Licensed under either of
+
+ * Apache License, Version 2.0 ([`LICENSE-APACHE`](./LICENSE-APACHE) or https://www.apache.org/licenses/LICENSE-2.0)
+ * MIT license ([`LICENSE-MIT`](./LICENSE-MIT) or https://opensource.org/licenses/MIT)
+
+at your option.
+
+## Contribution
+
+Unless you explicitly state otherwise, any contribution intentionally submitted
+for inclusion in the work by you, as defined in the Apache-2.0 license, shall be
+dual licensed as above, without any additional terms or conditions.