MCPcopy Create free account
hub / github.com/NodeDB-Lab/nodedb / decode_timestamp

Method decode_timestamp

nodedb-codec/src/gorilla.rs:234–265  ·  view source on GitHub ↗
(&mut self)

Source from the content-addressed store, hash-verified

232 }
233
234 fn decode_timestamp(&mut self) -> Result<i64, CodecError> {
235 let bit = self.reader.read_bit()?;
236 let dod = if !bit {
237 0i64
238 } else {
239 let bit2 = self.reader.read_bit()?;
240 if !bit2 {
241 let raw = self.reader.read_bits(7)? as i64;
242 sign_extend(raw, 7)
243 } else {
244 let bit3 = self.reader.read_bit()?;
245 if !bit3 {
246 let raw = self.reader.read_bits(9)? as i64;
247 sign_extend(raw, 9)
248 } else {
249 let bit4 = self.reader.read_bit()?;
250 if !bit4 {
251 let raw = self.reader.read_bits(12)? as i64;
252 sign_extend(raw, 12)
253 } else {
254 self.reader.read_bits(64)? as i64
255 }
256 }
257 }
258 };
259
260 let delta = self.prev_delta + dod;
261 let ts = self.prev_ts + delta;
262 self.prev_ts = ts;
263 self.prev_delta = delta;
264 Ok(ts)
265 }
266
267 fn decode_value(&mut self) -> Result<u64, CodecError> {
268 let bit = self.reader.read_bit()?;

Callers 1

next_sampleMethod · 0.80

Calls 3

read_bitMethod · 0.80
read_bitsMethod · 0.80
sign_extendFunction · 0.70

Tested by

no test coverage detected