Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- pub fn uvarint(buf: []u8) !u64 {
- var x: u64 = 0;
- var s: u64 = 0;
- for (buf) |i, b| {
- if (b < 0x80) {
- if (i > 9 or (i == 9 and b > 1)) {
- return error.Overflow;
- }
- return x | (u64)(b) << s;
- }
- x |= (u64)(b & 0x7f) << s;
- s += 7;
- }
- return error.BufferTooSmall;
- }
- test "varint" {
- var buf_data = []u8{1, 2, 3, 4};
- var buf = buf_data[0..];
- const x = uvarint(buf);
- }
- Output:
- zig/std/varint.zig:12:36: error: expected type 'u6', found 'u64'
- return x | (u64)(b) << s;
- ^
Add Comment
Please, Sign In to add comment