doc.odin 699 B

12345678910111213141516171819202122232425
  1. /*
  2. `LEB128` variable integer encoding and decoding, as used by `DWARF` & `DEX` files.
  3. Example:
  4. package main
  5. import "core:encoding/varint"
  6. import "core:fmt"
  7. main :: proc() {
  8. buf: [varint.LEB128_MAX_BYTES]u8
  9. value := u128(42)
  10. encode_size, encode_err := varint.encode_uleb128(buf[:], value)
  11. assert(encode_size == 1 && encode_err == .None)
  12. fmt.printf("Encoded as %v\n", buf[:encode_size])
  13. decoded_val, decode_size, decode_err := varint.decode_uleb128(buf[:])
  14. assert(decoded_val == value && decode_size == encode_size && decode_err == .None)
  15. fmt.printf("Decoded as %v, using %v byte%v\n", decoded_val, decode_size, "" if decode_size == 1 else "s")
  16. }
  17. */
  18. package encoding_varint