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 for ; d > 127 && pos < 8; pos++ {
7 e.buffer[pos] = byte(d&0x7f) | 0x80
8 d >>= 7
9 d--
10 }
11 e.buffer[pos] = byte(d)
12 e.Write(e.buffer[:pos+1])
13 }
14
15 // WriteIntX writes the integer using a variable number of bytes
16 func (e *StickyLittleEndianWriter) WriteIntX(d int64) {
17 e.WriteUintX(zigzag(d))
18 }
19