MCPcopy Create free account
hub / github.com/Monibuca/engine / ReadBits64

Method ReadBits64

util/bits/bits.go:13–35  ·  view source on GitHub ↗
(n int)

Source from the content-addressed store, hash-verified

11}
12
13func (self *Reader) ReadBits64(n int) (bits uint64, err error) {
14 if self.n < n {
15 var b [8]byte
16 var got int
17 want := (n - self.n + 7) / 8
18 if got, err = self.R.Read(b[:want]); err != nil {
19 return
20 }
21 if got < want {
22 err = io.EOF
23 return
24 }
25 for i := 0; i < got; i++ {
26 self.bits <<= 8
27 self.bits |= uint64(b[i])
28 }
29 self.n += got * 8
30 }
31 bits = self.bits >> uint(self.n-n)
32 self.bits ^= bits << uint(self.n-n)
33 self.n -= n
34 return
35}
36
37func (self *Reader) ReadBits(n int) (bits uint, err error) {
38 var bits64 uint64

Callers 3

ReadBitsMethod · 0.95
ReadMethod · 0.95
parsePtlMethod · 0.80

Calls 1

ReadMethod · 0.65

Tested by

no test coverage detected