aboutsummaryrefslogtreecommitdiff
path: root/core/encoding/varint/doc.odin
blob: dd068b2616efc2b54c04cacaa09d47dce43adfff (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
/*
	Implementation of the LEB128 variable integer encoding as used by DWARF encoding and DEX files, among others.

	Author of this Odin package: Jeroen van Rijn

	Example:
		```odin
		import "core:encoding/varint"
		import "core:fmt"

		main :: proc() {
			buf: [varint.LEB128_MAX_BYTES]u8

			value := u128(42)

			encode_size, encode_err := varint.encode_uleb128(buf[:], value)
			assert(encode_size == 1 && encode_err == .None)

			fmt.println(buf[:encode_size])

			decoded_val, decode_size, decode_err := varint.decode_uleb128(buf[:encode_size])
			assert(decoded_val == value && decode_size == encode_size && decode_err == .None)
		}
		```

*/
package varint