MCPcopy Create free account
hub / github.com/DNAProject/DNA / NextVarUint

Method NextVarUint

common/zero_copy_source.go:219–259  ·  view source on GitHub ↗
()

Source from the content-addressed store, hash-verified

217}
218
219func (self *ZeroCopySource) NextVarUint() (data uint64, size uint64, irregular bool, eof bool) {
220 var fb byte
221 fb, eof = self.NextByte()
222 if eof {
223 return
224 }
225
226 switch fb {
227 case 0xFD:
228 val, e := self.NextUint16()
229 if e {
230 eof = e
231 return
232 }
233 data = uint64(val)
234 size = 3
235 case 0xFE:
236 val, e := self.NextUint32()
237 if e {
238 eof = e
239 return
240 }
241 data = uint64(val)
242 size = 5
243 case 0xFF:
244 val, e := self.NextUint64()
245 if e {
246 eof = e
247 return
248 }
249 data = uint64(val)
250 size = 9
251 default:
252 data = uint64(fb)
253 size = 1
254 }
255
256 irregular = size != getVarUintSize(data)
257
258 return
259}
260
261func getVarUintSize(value uint64) uint64 {
262 if value < 0xfd {

Callers 11

BenchmarkZeroCopySourceFunction · 0.95
NextVarBytesMethod · 0.95
TestSourceSinkFunction · 0.95
DeserializationMethod · 0.80
DeserializationMethod · 0.80
DeserializationMethod · 0.80
DeserializationMethod · 0.80
deserializeMethod · 0.80
DeserializationMethod · 0.80
DeserializationMethod · 0.80

Calls 5

NextByteMethod · 0.95
NextUint16Method · 0.95
NextUint32Method · 0.95
NextUint64Method · 0.95
getVarUintSizeFunction · 0.85

Tested by 2

BenchmarkZeroCopySourceFunction · 0.76
TestSourceSinkFunction · 0.76