| 13 | } |
| 14 | |
| 15 | size_t varint_put(u8 buf[VARINT_MAX_LEN], varint_t v) |
| 16 | { |
| 17 | u8 *p = buf; |
| 18 | |
| 19 | if (v < 0xfd) { |
| 20 | *(p++) = v; |
| 21 | } else if (v <= 0xffff) { |
| 22 | (*p++) = 0xfd; |
| 23 | (*p++) = v; |
| 24 | (*p++) = v >> 8; |
| 25 | } else if (v <= 0xffffffff) { |
| 26 | (*p++) = 0xfe; |
| 27 | (*p++) = v; |
| 28 | (*p++) = v >> 8; |
| 29 | (*p++) = v >> 16; |
| 30 | (*p++) = v >> 24; |
| 31 | } else { |
| 32 | (*p++) = 0xff; |
| 33 | (*p++) = v; |
| 34 | (*p++) = v >> 8; |
| 35 | (*p++) = v >> 16; |
| 36 | (*p++) = v >> 24; |
| 37 | (*p++) = v >> 32; |
| 38 | (*p++) = v >> 40; |
| 39 | (*p++) = v >> 48; |
| 40 | (*p++) = v >> 56; |
| 41 | } |
| 42 | return p - buf; |
| 43 | } |
| 44 | |
| 45 | size_t varint_get(const u8 *p, size_t max, varint_t *val) |
| 46 | { |
no outgoing calls
no test coverage detected