byteio - stickylittleendianwriter_varint.go
1 package byteio
2
3 // WriteUintX writes the unsigned integer using a variable number of bytes.
4 func (e *StickyLittleEndianWriter) WriteUintX(d uint64) {
5 var pos int
6
7 for ; d > 127 && pos < 8; pos++ {
8 e.buffer[pos] = byte(d&0x7f) | 0x80
9 d >>= 7
10 d--
11 }
12
13 e.buffer[pos] = byte(d)
14 e.Write(e.buffer[:pos+1])
15 }
16
17 // WriteIntX writes the integer using a variable number of bytes.
18 func (e *StickyLittleEndianWriter) WriteIntX(d int64) {
19 e.WriteUintX(zigzag(d))
20 }
21