1
2## Core Functions
3
4### LEB128
5
6~~~~~
7uint64_t LEB128() {
8  result = 0;
9  shift = 0;
10  while(true) {
11    in                                                                                UI8
12    result |= (low order 7 bits of in) << shift;
13    if (high order bit of in == 0)
14      break;
15    shift += 7;
16  }
17  return result;
18}
19~~~~~
20{:.draco-syntax }
21
22
23### mem_get_le16
24
25~~~~~
26uint32_t mem_get_le16(mem) {
27  val = mem[1] << 8;
28  val |= mem[0];
29  return val;
30}
31~~~~~
32{:.draco-syntax }
33
34
35### mem_get_le24
36
37~~~~~
38uint32_t mem_get_le24(mem) {
39  val = mem[2] << 16;
40  val |= mem[1] << 8;
41  val |= mem[0];
42  return val;
43}
44~~~~~
45{:.draco-syntax }
46
47
48### mem_get_le32
49
50~~~~~
51uint32_t mem_get_le32(mem) {
52  val = mem[3] << 24;
53  val |= mem[2] << 16;
54  val |= mem[1] << 8;
55  val |= mem[0];
56  return val;
57}
58~~~~~
59{:.draco-syntax }
60